即使在goOffline()和keepSynced(false)之后,我的Firebase数据库仍然有轻微下载。
我只想获取一次数据。然后我将它保存到SharedPreferences。下次用户运行应用程序时,它将检查SharedPreferences中是否存在数据,如果确实存在,则无需再次从Firebase获取数据。
但是在Firebase信息中心中,我会在几个小时之后看到更多的下载量(例如10KB)。 如何完全关闭此Firebase?我错过了什么吗?
MainActivity:
@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
}
}
答案 0 :(得分:1)
只要您使用数据库,就无法完全关闭Firebase。您在Firebase控制台中可以看到的是从所有来源收集的流量。即使您有活跃的侦听器或只有用户正在访问您的应用程序,所有流量都会记录在那里。即使Firebase控制台的使用也被视为使用情况,并在那里作为流量出现。正如Frank所说,要获得有关流量的更多详细信息视图,您需要启用调试日志记录并检查logcat中发生的情况。