android– 如何确定在多个发件人ID的情况下是否需要刷新令牌?

android– 如何确定在多个发件人ID的情况下是否需要刷新令牌?,第1张

概述我的应用程序正在接收来自2个firebase项目的推送通知.我通过分别调用“getToken(StringauthorizedEntity,Stringscope)”来获取每个发送者id的标记.Stringtoken1=FirebaseInstanceId.getInstance().getToken("authorizedEntity1","FCM");Stringtoken2=FirebaseInstance

我的应用程序正在接收来自2个firebase项目的推送通知.我通过分别调用“getToken(String authorizedEntity,String scope)”来获取每个发送者ID的标记.

String token1 = FirebaseInstanceID.getInstance().getToken("authorizedEntity1", "FCM");String token2 = FirebaseInstanceID.getInstance().getToken("authorizedEntity2", "FCM");

根据onTokenRefresh文档

Called when the system determines that the tokens need to be refreshed. The application should call getToken() and send the tokens to all application servers.This will not be called very frequently, it is needed for key rotation and to handle Instance ID changes due to:

App deletes Instance ID

App is restored on a new device

User uninstalls/reinstall the app

User clears app data

由于onTokenRefresh已被弃用,我已根据文档检查了onNewToken

Called when a new token for the default Firebase project is generated.
This is invoked after app install when a token is first generated, and again if the token changes.

Q1.如果有多个发件人ID,如何知道哪个是默认的Firebase项目?

Q2.假设“authorizedEntity1”与默认的firebase项目相关联,那么它是否意味着只有当token1被更改时才会调用onNewToken?或者当token2被更改时它也会被调用?如果它对token2不起作用,那么如何知道token2需要刷新

Q3.参考this,我的理解是onTokenRefresh将在需要刷新任何令牌时被调用(不仅仅是默认项目).这种理解是否正确?

每当系统确定需要刷新token1或token2时,我想将更新的令牌发送到服务器.

注意:我在应用程序类中初始化firebase,因为我正在处理多个发送方ID.

解决方法:

经过一些测试,我发现只有默认项目的令牌才会被传递给onNewToken.通过调用getToken为其他发件人ID创建新令牌时,不会调用onNewToken.

通过调用getToken API检索的标记由不同于默认标记的字符串数据组成.

当默认令牌更改时,这些其他发件人ID的令牌不会刷新.
看起来它们会一直存在,直到您明确调用deletetoken API.
(当我反复调用getToken时,令牌值没有改变.)

总结

以上是内存溢出为你收集整理的android – 如何确定在多个发件人ID的情况下是否需要刷新令牌?全部内容,希望文章能够帮你解决android – 如何确定在多个发件人ID的情况下是否需要刷新令牌?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1097881.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存