android - 火力地堡 : What happens to a database connection after it has been used

标签 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());
              }
           }
        });
     }
  }

最佳答案

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

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

如果您想要对连接进行更细粒度的控制,您可以通过调用 goOffline()goOnline() 来显式管理它。参见 https://firebase.google.com/docs/database/android/offline-capabilities#section-connection-state

关于android - 火力地堡 : What happens to a database connection after it has been used,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40585925/

相关文章:

Android Wifi Direct : Avoiding user acceptance when connecting to a known peer

android - 如何修复 `duplicate class com.google.firebase.components`?

java - 带有 Microsoft 错误的 Firebase 身份验证

java - 必须清除 Firebase 中的海量数据库,编辑数据时编码错误

swift - 从 swift 检索 firebase 数据

java - Android音乐播放器同时播放两首歌曲

android - 带广告 : Received error HTTP response code :400

swift - 获取 Firebase 中特定键的值

java - firebase 存储的 getDownloadUrl() 为所有上传的文件返回相同且错误的链接。如何解决这个问题?

java - 如何以编程方式查找 Android 中可移动/可安装外部存储器的路径?