Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Firebase 通过#onNewToken和#getToken检索的令牌之间的差异_Firebase_Firebase Authentication_Firebase Cloud Messaging - Fatal编程技术网

Firebase 通过#onNewToken和#getToken检索的令牌之间的差异

Firebase 通过#onNewToken和#getToken检索的令牌之间的差异,firebase,firebase-authentication,firebase-cloud-messaging,Firebase,Firebase Authentication,Firebase Cloud Messaging,我正在尝试将firebase应用程序实例注册到fcm通知组,如下所示。我必须提供一个字段“注册ID” 我的理解是,我必须将应用程序实例的令牌传递到此字段,以便fcm可以代表此firebase实例发送消息。但是,我不知道我是否需要使用通过FcmMessagingService#onNewToken(字符串令牌)获得的令牌,还是通过FcmInstanceId#getToken(字符串senderId,字符串范围)获得的令牌 他们有什么不同吗?第二个选项是否只允许我们限制检索到的令牌的范围?这些方法应

我正在尝试将firebase应用程序实例注册到fcm通知组,如下所示。我必须提供一个字段“注册ID”

我的理解是,我必须将应用程序实例的令牌传递到此字段,以便fcm可以代表此firebase实例发送消息。但是,我不知道我是否需要使用通过
FcmMessagingService#onNewToken(字符串令牌)
获得的令牌,还是通过
FcmInstanceId#getToken(字符串senderId,字符串范围)
获得的令牌


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

这些方法应该以相同的格式返回令牌,并且通常返回相同的值

区别在于您获取令牌的方式:

  • 调用
    getToken
    意味着您决定何时获取令牌
  • 实现
    onNewToken
    意味着FCM在拥有(初始或新)令牌时调用您
您肯定需要
onNewToken
,因为当用户不积极使用您的应用程序时,令牌可能会被刷新,您需要将新令牌中继到服务器


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

嗨,弗兰克,谢谢你的回答!我仍然有点困惑,因为
getToken
允许用户指定范围,而
onNewToken
不允许。你能解释一下原因吗?据我记忆所及,我从未使用过这个范围。从文档中看,它似乎只用于发送消息,而我只通过服务器端API发送消息。