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 将创建新令牌。但在生产模式下服务人员工作得很好。
我很困惑,我可以使用此令牌(存储在 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 将创建新令牌。但在生产模式下服务人员工作得很好。