首页 > 解决方案 > 如何检测用户何时关闭浏览器?

问题描述

我正在尝试在我的应用程序中进行一些设置,以便我可以检测两个用户是否同时编辑同一个文档。我能想到的最好方法是在用户登录和注销时向后端发送信息,并检查何时我想查看两个用户是否同时处于活动状态。使用 useEffect 很容易检测到启动应用程序,但我很难找到一种干净的方法。

我查看了 onunload 和 onbeforeunload,但它们似乎没有通用的浏览器支持,我不想通过弹出窗口破坏用户体验。我在考虑检查空闲,但如果有更清洁的方法,比如谷歌云平台,那会很有帮助。谢谢!

标签: javascriptreactjsexpressgoogle-cloud-platformfirebase-authentication

解决方案


这听起来像是onDisconnect. 您可以在此处此处阅读有关它的更多信息。

这将是一个简单的例子:

var ref = firebase.database().ref("onlineState");
ref.onDisconnect().set(false);

这里发生的是这个命令被发送到 Firebase 并在那里。当您失去与 Firebase 的连接时,它将被执行。是否通过关闭浏览器/选项卡等来完成都没关系......

如果您需要更复杂的代码执行,请将 firebase 云函数触发器附加到这些更改。重要的是要知道您不能在该事件上执行客户端代码。


推荐阅读