即使在goOffline()和keepSynced(false)之后,我的Firebase数据库仍然有少量下载。
我只想获取一次数据。然后,将其保存到SharedPreferences。下次用户运行该应用程序时,它将检查SharedPreferences中是否存在数据,如果不存在,则无需再次从Firebase获取。
但是在Firebase仪表板上,几个小时后,我仍然看到下载量增加(例如10KB)。
如何完全关闭此Firebase?我想念什么吗?
主要活动:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
---- SOME PSEUDO CODE ----
if (mySharedPreferences.has(theValue)) {
//already has the value.
//No need to get from Firebase.
}
else { //doesn't have the value, so get it from Firebase.
FirebaseDatabase.getInstance().goOnline(); //-->ONLINE
DatabaseReference myRef = FirebaseDatabase.getInstance().getReference("someNode");
myRef.child("datax").addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
mySharedPreferences.set(theValue);
FirebaseDatabase.getInstance().goOffline(); //-->OFFLINE
}
@Override
public void onCancelled(DatabaseError databaseError) {
FirebaseDatabase.getInstance().goOffline(); //-->OFFLINE
}
});
myRef.keepSynced(false); //-->NOT SYNCYED
}
}
最佳答案
只要您使用的是数据库,就无法完全关闭Firebase。您在Firebase控制台中看到的是从所有来源收集的流量。即使您有活跃的侦听器,或者只有用户正在访问您的应用,所有流量仍会记录在此处。甚至Firebase Console的使用也被视为使用情况,并以流量形式存在。正如Frank所说,要获得有关流量的更多详细信息,您需要启用调试日志记录并检查logcat中发生了什么。