即使在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中发生了什么。

10-07 19:40
查看更多