Firebase:数据库连接使用后会发生什么

时间:2016-11-14 09:54:54

标签: android firebase firebase-realtime-database

我只是想知道在使用它之后是否需要关闭FirebaseDatabase.getInstance()实例,或者释放它所使用的任何资源。

我使用实例,如下所示。

  String UID = FirebaseAuth.getInstance().getCurrentUser().getUid();
  DatabaseReference DB  = FirebaseDatabase.getInstance().getReference();
  for (final Message M : Messages) {
     if (!M.getSender().equals(UID) && !M.getLocal() && !M.getRead()) {
        DatabaseReference r = DB.child("chat/messages/" + M.getMessageid()+"/read");
        r.setValue(true, new DatabaseReference.CompletionListener() {
           @Override
           public void onComplete(DatabaseError e, DatabaseReference dbr) {
              if (e != null) {
                 System.out.println("Message Read could not be updated" + e.getMessage());
              } else {
                 System.out.println("Message Read updated" + M.getMessageid());
              }
           }
        });
     }
  }

1 个答案:

答案 0 :(得分:1)

首次开始与Firebase数据库交互时,它会在应用和Firebase服务器之间打开套接字连接。从那一刻起,应用程序和数据库之间的所有流量都会通过同一个套接字。

如果在一段时间内没有活动侦听器且没有写入操作,Firebase数据库客户端将自动关闭连接。当然,当你附加一个监听器或再次执行写操作时,它会重新打开连接。

如果您希望对连接进行更细粒度的控制,可以通过调用goOffline()goOnline()来明确管理此问题。见https://firebase.google.com/docs/database/android/offline-capabilities#section-connection-state