IndexedDB firebase-messaging-store 中这个 "token" 有什么意义

What is the point of this "token" in IndexedDB firebase-messaging-store


我很困惑,我可以使用此令牌(存储在 indexedDb 中)为设备订阅主题或向设备发送推送通知吗? 这个令牌有什么意义?


此致

谢谢

这个数据库很可能是 Firebase 云消息传递客户端存储设备令牌的方式。然而,这没有记录,所以你不应该依赖这个现有的数据库条目。

相反,如果您想使用令牌(订阅主题或其他原因),请使用 public API to get the token:

messaging.getToken().then((currentToken) => {
  ...
});

以上可能从indexeddb读取令牌,但它也可能主动从对FCM服务器的调用中获取令牌。

正如弗兰克所说,

const localStorageKey = 'webpush';
messaging.getToken().then((currentToken) => {
if (localStorage.getItem(localStorageKey) !== currentToken) {
   localStorage.setItem(localStorageKey, currentToken); 
}
...
});

Firebase 将令牌存储在索引数据库中。当令牌刷新时,IndexedDb 将采用更新后的令牌。



这些令牌完全相同。


我的令牌发生变化,因为我的服务人员在每次刷新页面时注销(在开发模式下很奇怪)。然后它再次注册。因此,如果 service worker 状态为未注册,firebase 将创建新令牌。但在生产模式下服务人员工作得很好。