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

関連する問題