2016-11-14 32 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

相關問題