如何获得firebase实时数据库并发用户数&减少连接限制的选项?

时间:2017-12-13 09:28:55

标签: android firebase firebase-realtime-database

我正在使用firebase realtime database开发一个Android应用程序。我想要2个解决方案。

1)现在我无法获得有关活跃用户数(并发用户)的任何数据。

2)如果有任何减少连接限制的选项。像现在我有100个连接,如果有任何选项将连接限制减少到5,因为为什么我要问我想检查在第100次连接后会发生什么。

我花了更多时间但没有结果。

我希望你有人给我一个解决方案。

感谢...

1 个答案:

答案 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将等待一个连接关闭,而不是使用新连接。