如果用户使用firebase进行互联网连接,请在线检查用户

时间:2018-04-28 21:52:00

标签: android firebase-realtime-database

我想制作一个应用程序,如果用户连接到互联网,它必须使用firebase在其他设备上显示为在线用户。什么应该是适当的方式?

2 个答案:

答案 0 :(得分:1)

您可以在所有在线用户的firebase中有一个列表,因此当用户打开该应用时,您会立即将其ID添加到列表中。 然后,如果您想检查用户是否在线,只需检查他的Id是否在列表中。

您还可以将isOnline变量添加到数据库中用户的引用中。

答案 1 :(得分:1)

我建议使用Firebase的内置onDisconnect()方法。它使您能够预定义一旦客户端断开连接就会发生的操作。

请参阅Firebase documentation

您还可以检测用户的连接状态。对于许多与状态相关的功能,您的应用知道何时在线或离线都很有用。 Firebase实时数据库在/.info/connected处提供了一个特殊位置,每当Firebase实时数据库客户端的连接状态发生更改时,该位置都会更新。以下是官方文档中的一个示例:

DatabaseReference connectedRef = FirebaseDatabase.getInstance().getReference(".info/connected");
    connectedRef.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot snapshot) {
            boolean connected = snapshot.getValue(Boolean.class);
            if (connected) {
                System.out.println("connected");
            } else {
                System.out.println("not connected");
            }
        }

        @Override
        public void onCancelled(DatabaseError error) {
            System.err.println("Listener was cancelled");
        }
});