Flutter集成Firebase Cloud Messaging时出现TOO_MANY_REGISTRATIONS错误
解决Flutter中Firebase Cloud Messaging的TOO_MANY_REGISTRATIONS错误
你遇到的错误日志如下:
E/FirebaseInstanceId(29913): Topic sync or token retrieval failed on hard failure exceptions: TOO_MANY_REGISTRATIONS. Won't retry the operation.
这个错误是由于同一设备生成了过多的Firebase注册令牌,导致Firebase服务器拒绝新请求,以下是具体解决步骤:
重置Firebase令牌
先删除旧令牌再重新获取,在Flutter中可以实现如下方法:import 'package:firebase_messaging/firebase_messaging.dart'; Future<void> resetFirebaseToken() async { final oldToken = await FirebaseMessaging.instance.getToken(); if (oldToken != null) { await FirebaseMessaging.instance.deleteToken(); } final newToken = await FirebaseMessaging.instance.getToken(); print('重新获取的令牌: $newToken'); }调用该方法后重启应用,再尝试订阅主题或获取令牌。
清理设备上的应用残留
卸载设备上所有该应用的测试/调试版本,确保没有重复安装的实例,然后重新安装最新版本的应用包。检查Firebase配置文件
确认Android的google-services.json和iOS的GoogleService-Info.plist完全匹配当前Firebase项目,不要混用其他项目的配置文件。优化令牌请求逻辑
避免在代码中频繁调用getToken(),比如不要每次启动应用都重复请求。可以将令牌存储到本地存储(如SharedPreferences),仅在令牌失效或需要更新时重新获取。
内容的提问来源于stack exchange,提问作者jijo jacob
相关产品推荐
相关产品推荐

