我们正在积极开发一个推送通知SDK,并将其迁移到FCM系统,因为GCM已经被弃用。
SDK gradle文件包含firebase-messaging包,SDK正确处理所有令牌注册和消息接收操作。SDK使用instanceId.getToken(senderid,“fcm”)方法获取令牌并成功发送到云端。
问题出现在测试多个sender id的情况下。如果客户使用自己的Firebase实现(17.1.0+)并使用默认sender id(从google-services.json获取),则onNewToken方法会有趣地触发两次,分别对应SDK和客户sender IDs。我们希望只获取客户的sender id(默认值)。
我们如何确定令牌来自哪里?来自哪个sender id?
(我们也联系了Google,但他们无法提供帮助)
SDK gradle文件包含firebase-messaging包,SDK正确处理所有令牌注册和消息接收操作。SDK使用instanceId.getToken(senderid,“fcm”)方法获取令牌并成功发送到云端。
问题出现在测试多个sender id的情况下。如果客户使用自己的Firebase实现(17.1.0+)并使用默认sender id(从google-services.json获取),则onNewToken方法会有趣地触发两次,分别对应SDK和客户sender IDs。我们希望只获取客户的sender id(默认值)。
我们如何确定令牌来自哪里?来自哪个sender id?
(我们也联系了Google,但他们无法提供帮助)
onNewToken()
返回一个字符串。该字符串是默认的。如我上面所提到的,如果实现了多个发送者,则应在onNewToken()
中调用getToken(senderId, scope)
。这样,您就不会混淆哪个令牌来自哪个发送者。 - AL.onNewToken()
被执行了两次。 - Ozgur