我正在使用firebase realtime database
开发一个Android应用程序。我想要2个解决方案。
1)现在我无法获得有关活跃用户数(并发用户)的任何数据。
2)如果有任何减少连接限制的选项。像现在我有100个连接,如果有任何选项将连接限制减少到5,因为为什么我要问我想检查在第100次连接后会发生什么。
我花了更多时间但没有结果。
我希望你有人给我一个解决方案。
感谢...
答案 0 :(得分:2)
如果您想知道有多少用户已连接,您需要detect the connection state
。 Firebase实时数据库在以下位置提供了一个特殊位置:
/.info/connected
每次Firebase实时数据库客户端的连接状态发生更改时,都会更新。以下是offical documentation。
中的示例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");
}
});
/.info / connected是一个布尔值,它在实时数据库客户端之间不同步,因为该值取决于客户端的状态。换句话说,如果一个客户端将/.info/connected读为false,则无法保证单独的客户端也会读取false。
这也是post,我为了更好的理解而重新阅读。
关于第二个问题,如果您达到每秒的最大写入次数,并不意味着您将无法再使用Firebase数据库。当第1001个同时连接发生时,会创建一个操作队列,Firebase将等待一个连接关闭,而不是使用新连接。