首页 > 解决方案 > Firestore/Firebase 定期断开连接

问题描述

我正在使用 Firestore 和 Firebase(云功能)来处理我的应用程序的身份验证。Firebase 部分只是为了让我可以检测到用户是否关闭了浏览器窗口,然后将用户注销。我正在使用 createUserWithEmailAndPassword 使用我自己的用户名和密码数据库登录用户。

我收到报告说用户看到 ADMIN 帐户定期注销,即使 ADMIN 帐户一直在登录。有一个特定帐户被标识为 ADMIN (11269)。其他用户可以看到 ADMIN 是否登录。

我正在对此进行调查,因为用户报告了其他数据未加载的问题,我想知道这是否与 ADMIN 未登录有关,因为 ADMIN 控制着其他人在他们的屏幕上看到的内容。

这是为所有用户运行的代码,以确定 ADMIN 是否按顺序登录:

firestoredb.collection('user').where('custnum', '==', 11269).where('status', '==', true).limit(1).onSnapshot(function(doc){
    if (doc.empty){
        if (!$('#adminnotloggedin').is(':visible')){
            $('#adminnotloggedin').show();

            $.post('_log-event.asp', {event:custnum + ' detected Cherrystone Room logged out.'});
        }
    } else {
        if ($('#adminnotloggedin').is(':visible')){
            $('#adminnotloggedin').hide();

            $.post('_log-event.asp', {event:custnum + ' detected Cherrystone Room logged in.'});
        }
    }
});

作为测试,我让 ADMIN 和另一个用户长时间登录。这是我近 24 小时的日志。注销是非常周期性的:

5/2/2021 10:44:41 AM    10215 detected ADMIN logged in.
5/2/2021 11:28:00 AM    10215 detected ADMIN logged out.
5/2/2021 11:47:07 AM    10215 detected ADMIN logged in.
5/2/2021 12:10:44 PM    10215 detected ADMIN logged out.
5/2/2021 12:50:46 PM    10215 detected ADMIN logged in.
5/2/2021 1:50:09 PM     10215 detected ADMIN logged out.
5/2/2021 1:50:43 PM     10215 detected ADMIN logged in.
5/2/2021 2:50:25 PM     10215 detected ADMIN logged out.
5/2/2021 2:55:14 PM     10215 detected ADMIN logged in.
5/2/2021 3:54:56 PM     10215 detected ADMIN logged out.
5/2/2021 3:58:40 PM     10215 detected ADMIN logged in.
5/2/2021 4:58:22 PM     10215 detected ADMIN logged out.
5/2/2021 5:02:04 PM     10215 detected ADMIN logged in.
5/2/2021 6:01:46 PM     10215 detected ADMIN logged out.
5/2/2021 6:05:21 PM     10215 detected ADMIN logged in.
5/2/2021 7:04:44 PM     10215 detected ADMIN logged out.
5/2/2021 7:10:08 PM     10215 detected ADMIN logged in.
5/2/2021 9:04:28 PM     10215 detected ADMIN logged out.
5/2/2021 10:06:31 PM    10215 detected ADMIN logged out.
5/2/2021 10:07:48 PM    10215 detected ADMIN logged in.
5/2/2021 11:07:30 PM    10215 detected ADMIN logged out.
5/2/2021 11:09:51 PM    10215 detected ADMIN logged in.
5/3/2021 12:09:12 AM    10215 detected ADMIN logged out.
5/3/2021 12:10:20 AM    10215 detected ADMIN logged in.
5/3/2021 1:10:16 AM     10215 detected ADMIN logged out.
5/3/2021 1:10:24 AM     10215 detected ADMIN logged in.
5/3/2021 2:12:14 AM     10215 detected ADMIN logged out.
5/3/2021 2:23:45 AM     10215 detected ADMIN logged in.
5/3/2021 3:12:25 AM     10215 detected ADMIN logged out.
5/3/2021 3:16:00 AM     10215 detected ADMIN logged in.
5/3/2021 4:15:40 AM     10215 detected ADMIN logged out.
5/3/2021 4:20:27 AM     10215 detected ADMIN logged in.
5/3/2021 5:19:49 AM     10215 detected ADMIN logged out.
5/3/2021 5:23:43 AM     10215 detected ADMIN logged in.
5/3/2021 6:23:07 AM     10215 detected ADMIN logged out.
5/3/2021 6:27:48 AM     10215 detected ADMIN logged in.

所以我的问题是,什么会导致这种情况发生?尽管 ADMIN 似乎可以登录和注销,但在此期间我没有碰过任何一个浏览器窗口。这仅仅是互联网连接问题吗?Firestore 是否会出现这种行为?如果是这样,我能做些什么来补救?

标签: javascriptgoogle-cloud-firestorefirebase-authenticationgoogle-cloud-functions

解决方案


推荐阅读