获取注册令牌 GCM 与 FCM
Getting Registration Tokens GCM vs FCM
我正在阅读 this page 标题下的文档 "Retrieve the current registration token." 我对它所说的内容感到困惑。
开头一段很简单。它说我们只需调用...
FirebaseInstanceId.getInstance().getToken
这听起来很容易,直到我读到下一段说我需要实施 MyFirebaseInstanceIDService.java...
public class MyFirebaseInstanceIDService extends FirebaseInstanceIdService
{
@Override
public void onTokenRefresh() {
// Get updated InstanceID token.
String refreshedToken = FirebaseInstanceId.getInstance().getToken();
}
所以第一段似乎说我可以在任何地方调用,但第二段让我将调用包装在 onTokenRefresh() 中。
所以这就引出了一个问题,什么时候调用 onTokenRefresh?使用 GCM,我可以选择何时拨打电话请求令牌。对于 FCM,我们似乎在等待 onTokenRefresh 在某个时间被调用。
来自
The onTokenRefresh() method is going to be called whenever a new token
is generated. Upon app install, it will be generated immediately (as
you have found to be the case). It will also be called when the token
has changed.
就像进行编辑时调用 onEdit()
函数或打开应用程序时调用 onOpen()
一样。
来自同一个链接文档:
The registration token may change when:
- The app deletes Instance ID
- The app is restored on a new device
- The user uninstalls/reinstall the app
- The user clears app data.
强烈建议处理 onTokenRefresh()
,因为调用 getToken()
有一种(罕见的)可能性(来自相同的文档):
This method returns null if the token has not yet been generated.
我觉得我的 有更多的解释。
综上所述,调用 getToken()
会(大多数情况下)立即给你一个令牌,但在没有的情况下,onTokenRefresh()
就在那里。
我正在阅读 this page 标题下的文档 "Retrieve the current registration token." 我对它所说的内容感到困惑。
开头一段很简单。它说我们只需调用...
FirebaseInstanceId.getInstance().getToken
这听起来很容易,直到我读到下一段说我需要实施 MyFirebaseInstanceIDService.java...
public class MyFirebaseInstanceIDService extends FirebaseInstanceIdService
{
@Override
public void onTokenRefresh() {
// Get updated InstanceID token.
String refreshedToken = FirebaseInstanceId.getInstance().getToken();
}
所以第一段似乎说我可以在任何地方调用,但第二段让我将调用包装在 onTokenRefresh() 中。
所以这就引出了一个问题,什么时候调用 onTokenRefresh?使用 GCM,我可以选择何时拨打电话请求令牌。对于 FCM,我们似乎在等待 onTokenRefresh 在某个时间被调用。
来自
The onTokenRefresh() method is going to be called whenever a new token is generated. Upon app install, it will be generated immediately (as you have found to be the case). It will also be called when the token has changed.
就像进行编辑时调用 onEdit()
函数或打开应用程序时调用 onOpen()
一样。
来自同一个链接文档:
The registration token may change when:
- The app deletes Instance ID
- The app is restored on a new device
- The user uninstalls/reinstall the app
- The user clears app data.
强烈建议处理 onTokenRefresh()
,因为调用 getToken()
有一种(罕见的)可能性(来自相同的文档):
This method returns null if the token has not yet been generated.
我觉得我的
综上所述,调用 getToken()
会(大多数情况下)立即给你一个令牌,但在没有的情况下,onTokenRefresh()
就在那里。