【问题标题】:Difference between tokens retrieved via #onNewToken and #getToken通过 #onNewToken 和 #getToken 检索的令牌之间的区别
【发布时间】:2020-10-12 23:13:17
【问题描述】:

我正在尝试将一个 firebase 应用程序实例注册到一个 fcm 通知组,遵循https://firebase.google.com/docs/cloud-messaging/android/device-group。我必须提供一个字段“registeration_ids”。

我的理解是我必须将应用程序实例的令牌传递给这个字段,所以 fcm 可以代表这个 firebase 实例发送消息。但是不知道是需要用我通过FcmMessagingService#onNewToken(String token)得到的token,还是我通过FcmInstanceId#getToken(String senderId, String scope)得到的token。

它们有什么不同吗?第二个选项是否只是为了允许我们限制检索到的令牌的范围?

【问题讨论】:

    标签: firebase firebase-authentication firebase-cloud-messaging


    【解决方案1】:

    这些方法应该以相同的格式返回一个标记,并且通常是相同的值。

    不同之处在于获取令牌的方式:

    • 调用getToken 表示您确定何时获取令牌。
    • 实现 onNewToken 意味着 FCM 在拥有(初始或新的)令牌时调用您。

    您肯定需要onNewToken,因为当用户不积极使用您的应用时,令牌可能会被刷新,您需要将该新令牌中继到您的服务器。

    实现getToken() 在开发过程中非常有用,因为通常在您实现onNewToken 之前就已经生成了令牌。所以在这种情况下,当你的主要活动开始时调用getToken()是向服务器注册它的常用方法。

    【讨论】:

    • 您好弗兰克,感谢您的回答!我还是有点困惑,因为getToken 允许用户指定范围,而onNewToken 不允许。你能提供一些关于为什么会这样的见解吗?
    • 据我记忆,我从未使用过示波器。从文档看来,它似乎只用于发送消息,而我只通过服务器端 API 进行。
    猜你喜欢
    • 2020-11-14
    • 2017-11-23
    • 1970-01-01
    • 2021-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-10
    • 2010-10-01
    相关资源
    最近更新 更多