使用Firebase联机或反之时如何显示用户状态?您能给我示例项目或应用示例在android中实现的示例吗?
答案 0 :(得分:0)
一种简单的实现方法是在Firebase数据库中创建一个新节点来容纳所有在线用户,因此,当用户打开应用程序时,您将立即将其ID添加到这个新创建的节点中。然后,如果要检查用户是否在线,只需检查该节点下是否存在其特定ID。
另一种方法是为数据库中的每个用户添加一个名为isOnline
的新属性,然后相应地使用它。为此,我建议您使用Firebase的内置onDisconnect()
方法。它使您可以预定义将在客户端变为disconnected
后立即执行的操作。
请参见Firebase documentation for presence。
您还可以检测用户的连接状态。对于许多与状态相关的功能,让您的应用知道何时为online
或offline
很有用。 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");
}
});