Chrome 浏览器 GCM - TOO_MANY_REGISTRATIONS - 如何取消注册/清除所有已注册的应用程序 ID (registration.pushManager.subscribe

Posted

技术标签:

【中文标题】Chrome 浏览器 GCM - TOO_MANY_REGISTRATIONS - 如何取消注册/清除所有已注册的应用程序 ID (registration.pushManager.subscribe)【英文标题】:Chrome Browser GCM - TOO_MANY_REGISTRATIONS - How to unregister/clear all registered app ids (registration.pushManager.subscribe) 【发布时间】:2019-01-14 23:39:12 【问题描述】:

我正在为我的一个项目开发服务工作者并推送通知。 我犯了一个错误,结果我在浏览器中注册了超过 2k 个应用程序。

在页面chrome://gcm-internals我看到2450条类似记录:

注册的应用 ID:

com.google.android.gms,com.google.chrome.invalidations,...,
...
wp:http://localhost:9001/#0027E3C3-0257-42DD-8B34-4F2F6AA90-V2,
wp:http://localhost:9001/#004F20F2-BD18-4010-9057-7D9942BB1-V2,
wp:http://localhost:9001/#005821E7-DB83-4354-B7D5-A22AF0D96-V2,
wp:http://localhost:9001/#0071000C-BF28-4D70-9330-C9DE4CB1A-V2,
...

在我犯了那个错误之后,我在尝试订阅推送消息时遇到了错误:

const subscribeOptions = 
      userVisibleOnly: true,
      applicationServerKey: urlBase64ToUint8Array(vapid_key)
;

registration.pushManager.subscribe(subscribeOptions).then(...)

错误:

code: 20  
message: Registration failed - push service error  
name: AbortError  

注册日志:

应用 ID: wp:http://localhost:9001/#7C6FBD76-0ADA-4934-A32B-8D61FE880-V2事件: 收到注册响应详细信息: TOO_MANY_REGISTRATIONS

是否可以注销/清除所有这些应用 ID?

【问题讨论】:

从这个thread in github,您可以查看社区提供的解决方案。要了解 TOO_MANY_REGISTRATIONS 错误,您还可以查看此SO post。 @jess 感谢您提供链接,但看起来这不是我的情况,因为我的浏览器中没有针对所有已注册应用程序 ID 的“取消订阅”操作 是这样吗,抱歉没能帮到你。 【参考方案1】:

我在 Chrome 测试推送通知中遇到了同样的问题,我的解决方案是删除 GCM 商店文件夹中的日志文件

C:\Users\your_username\AppData\Local\Google\Chrome\User Data\Default\GCM 商店

log_google_chrome_gcm

【讨论】:

是的,您的解决方案也帮助了我。谢谢

以上是关于Chrome 浏览器 GCM - TOO_MANY_REGISTRATIONS - 如何取消注册/清除所有已注册的应用程序 ID (registration.pushManager.subscribe的主要内容,如果未能解决你的问题,请参考以下文章

AWS Cloudfront重定向TOO_MANY次

接收 GCM 时出现错误消息

GCM原生权限提示——可否更换或调整?

无法在“notificationclick”事件中为 chrome 加载 GCM 推送通知的数据 URL

GCM chrome 50 发送多个推送通知

根据 OneSignal 的用户数据库直接发送 Web 推送 (Chrome - GCM/FCM) 通知