我只是想知道在使用它之后是否需要关闭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());
}
}
});
}
}
答案 0 :(得分:1)
首次开始与Firebase数据库交互时,它会在应用和Firebase服务器之间打开套接字连接。从那一刻起,应用程序和数据库之间的所有流量都会通过同一个套接字。
如果在一段时间内没有活动侦听器且没有写入操作,Firebase数据库客户端将自动关闭连接。当然,当你附加一个监听器或再次执行写操作时,它会重新打开连接。
如果您希望对连接进行更细粒度的控制,可以通过调用goOffline()
和goOnline()
来明确管理此问题。见https://firebase.google.com/docs/database/android/offline-capabilities#section-connection-state