2016-11-14 57 views
1

我只是想知道,在使用或免费使用此实例所使用的任何资源之后,是否无需关闭FirebaseDatabase.getInstance()实例。Firebase:使用后数据库连接会发生什么

我使用实例如下。

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

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

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

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

相关问题