roo*_*mir 44 android push-notification firebase firebase-cloud-messaging
我是firebase的新手,我正在学习它,就像一个学习走路的小孩.到目前为止,我已经设法使用firebase框架为我的手机生成的令牌向我自己的手机发送消息.现在这里变得棘手(在我看来).onTokenRefresh()在FirebaseInstanceIdService扩展服务中调用了一个方法.因为它被称为刷新,然后我假设它会改变.我想知道何时创建此令牌以及何时更改它?
如果它发生变化,假设我发送的消息带有令牌"A"的设备,该设备现在处于脱机状态,因此它将排队.现在,当设备上线时,它会将令牌"刷新"为"B".现在,由于消息应该传递给令牌"A",因此永远不会传递消息.我该如何处理这种情况?
Die*_*ini 56
只要手机可以连接到Google服务器,就会在应用首次启动后生成令牌.由于所需的连接性,这可能不会立即发生,但在大多数情况下,它将在用户打开应用程序后的几秒钟内发生.一旦生成令牌,onTokenRefresh()就会调用该方法.
正如您所指出的那样,令牌可以改变,在这种情况下,onTokenRefresh()将再次调用该方法.
刷新事件在某种程度上是罕见的,不要指望经常看到它.
当刷新令牌发生时,所有已"成功"发送的消息(API将消息ID返回给旧令牌)将被传递.
最后,即使在刷新发生之后,旧令牌仍将在短时间内工作,以允许应用程序将新令牌传送到其后端.
小智 25
在应用程序首次启动时,FCM的sdk会为客户端应用程序实例生成注册令牌.如上所述,这是一个罕见的事件.具体而言,注册令牌可能在以下情况下发生变化:
实例ID为您的app的每个实例提供唯一ID .Instance ID提供了一个简单的API来生成安全令牌,授权第三方访问您应用的服务器端托管资源.实例ID服务器甚至可以告诉您何时应用程序所在的设备已安装上次使用.我们可以使用它来决定是从应用程序保留数据还是发送推送消息以重新与用户互动.
每次更改设备令牌时,它都会反映在onTokenRefresh()方法中.为了在设备令牌更改时获取设备令牌,我们可以调用此方法来获取刷新的令牌.
并且为了在任何时候获取设备令牌,我们可以使用FirebaseInstanceId.getInstance().getToken()方法来获取当前设备令牌.获取设备令牌需要一些时间.
单击此处以阅读有关访问设备注册令牌的更多信息
| 归档时间: |
|
| 查看次数: |
30174 次 |
| 最近记录: |