#SOLVED信息/连接返回false,即使设备已连接互联网

时间:2019-07-12 03:26:08

标签: android firebase firebase-realtime-database

作为标题,我正在使用infor/connection检查从客户端到数据库的连接,但是如果我卸载并重新安装应用,则infor/connection返回true并返回false之后,即使该设备可以访问互联网,我也已经在真实和虚拟设备上进行了测试,并且仍然存在该问题。

这是检查连接的代码:



 mValueEventConnection = new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot dataSnapshot) {

                boolean isConnected = dataSnapshot.getValue(Boolean.class);

                updateConnectionStatus(isConnected);

                Log.d("SSSSS-CONNECTION", isConnected + "");

            }

            @Override
            public void onCancelled(@NonNull DatabaseError databaseError) {
                Log.d("SSSSS-CONNECTION", databaseError + "");
            }
        };

        CONNECT_REF.addValueEventListener(mValueEventConnection);

和结果:

 D/SSSSS-CONNECTION: true
 D/SSSSS-CONNECTION: false

更新:

第一次重新安装并打开应用程序后,会发生此问题,但是第二次不会发生。

1 个答案:

答案 0 :(得分:0)

.info/connection伪节点指示客户端是否具有与Firebase数据库服务器的连接,而不仅仅是与Internet的连接。

请注意,如果没有活动的数据侦听器且没有写操作,则Firebase客户端会在一分钟后自动断开连接。因此,如果您没有活动的侦听器或写入器,并且断开连接发生在连接后大约一分钟左右,则可以解释这种现象。

在后一种情况下,您可以将侦听器附加到数据的某些常规部分或某些不存在的节点上:FirebaseDatabase.getInstance().getReference("ThisDoesNotExist").addValueEventListener(...)