Hey*_*You 5 android firebase firebase-cloud-messaging
我的应用程序正在接收来自 2 个 firebase 项目的推送通知。我通过分别调用“getToken(StringauthorizedEntity, Stringscope)”来获取每个发件人 ID 的令牌。
String token1 = FirebaseInstanceId.getInstance().getToken("authorizedEntity1", "FCM");
String token2 = FirebaseInstanceId.getInstance().getToken("authorizedEntity2", "FCM");
Run Code Online (Sandbox Code Playgroud)
根据onTokenRefresh文档
当系统确定需要刷新令牌时调用。应用程序应该调用 getToken() 并将令牌发送到所有应用程序服务器。这不会被频繁调用,它是密钥轮换和处理实例 ID 更改所必需的,因为:
应用程序删除实例ID
应用程序已在新设备上恢复
用户卸载/重新安装应用程序
用户清除应用数据
由于onTokenRefresh已被弃用,我已经检查了onNewToken,根据文档
在生成默认 Firebase 项目的新令牌时调用。在应用程序安装后首次生成令牌时会调用此函数,如果令牌发生更改,则会再次调用此函数。
Q1. 如果有多个发件人 ID,如何知道哪个是默认的 Firebase 项目?
Q2。假设如果“authorizedEntity1”与默认的 firebase 项目关联,那么是否意味着仅当 token1 发生更改时才会调用 onNewToken ?或者当 token2 改变时它也会被调用?如果它对 token2 不起作用那么如何知道token2需要刷新?
Q3。参考此,我的理解是,只要需要刷新任何令牌(不仅对于默认项目),就会调用 onTokenRefresh 。这种理解正确吗?
每当系统确定token1或token2需要刷新时,我想将更新的令牌发送到服务器。
注意:当我处理多个发件人 ID 时,我正在应用程序类中初始化 firebase。
经过一些测试,我发现只有默认项目的令牌才会传递到onNewToken。当通过调用 getToken 为其他发件人 ID 创建新令牌时,不会调用 onNewToken。
通过调用 getToken API 检索的令牌由与默认令牌不同的字符串数据组成。
当默认令牌更改时,这些其他发件人 ID 的令牌不会刷新。看起来它们会一直持续到您显式调用 deleteToken API 为止。(当我重复调用getToken时,Token值没有改变。)
归档时间: |
|
查看次数: |
660 次 |
最近记录: |