我是 firebase 的新手,我正在学习它,就像一个蹒跚学步的 child 学习走路一样。到目前为止,我已经设法使用 firebase 框架为我的手机生成的 token 向我自己的手机发送消息。现在这是棘手的地方(在我看来)。 FirebaseInstanceIdService
扩展服务中有一个名为onTokenRefresh()
的方法。既然叫refresh,那么我假设它会改变。我想知道这个 token 是什么时候创建的,什么时候会改变?
如果它发生变化,假设我向带有 token “A”的设备发送消息,该设备目前处于离线状态,因此它将排队。现在,当设备上线时,它会将 token “刷新”为“B”。现在,由于消息应该被传递到 token “A”,因此消息将永远不会被传递。我该如何处理这种情况?
最佳答案
在应用程序首次启动后,只要手机可以连接到 Google 服务器,就会生成 token 。由于所需的连接性,这可能不会立即发生,但在大多数情况下,它会在用户打开应用程序后几秒钟内发生。
一旦生成 token ,就会调用方法 onTokenRefresh()
。
正如您指出的, token 可以更改,在这种情况下,将再次调用 onTokenRefresh()
方法。
刷新事件在某种程度上很少见,根本不要指望经常看到它。
当刷新 token 发生时,所有已“成功”发送(API 向您返回消息 ID)到旧 token 的消息都将被传递。
最后,即使在刷新之后,旧 token 仍会在短时间内工作,以允许应用将新 token 传送到其后端。
关于android - firebase的app token在什么时期发生变化,如何管理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37678248/