我正在尝试实现一个触发器,以使用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通知的正确方法是什么?