小编frb*_*oud的帖子

如何正确注销由Firebase消息安装的Service Worker

我正在尝试实现一个触发器,以使用Firebase消息传递在Web应用程序中打开/关闭通知。我的通知工作正常,但是当用户尝试关闭通知时出现问题。如果我只是通过以下方式取消注册服务人员:

navigator.serviceWorker.getRegistrations().then((r) => {
  return Promise.all(r.map(reg => reg.unregister()));
});
Run Code Online (Sandbox Code Playgroud)

那么工作人员确实确实会取消注册,但是如果用户尝试重新打开通知,Firebase将抛出此错误:

messaging/no-sw-in-reg
Run Code Online (Sandbox Code Playgroud)

该错误是有道理的,但似乎没有任何内置方法可以为不再需要它的用户注销Firebase。您是否应该在用户再次询问通知时删除firebase应用并重新初始化?

我意识到我可以删除firebase令牌,而忘记数据库中的用户,但是我不想留下一个永远不会再被调用的无用的服务工作者。

让用户在您的Web应用程序中完全禁用Firebase通知的正确方法是什么?

javascript firebase firebase-cloud-messaging

5
推荐指数
1
解决办法
1399
查看次数