以下代碼花費 1MB 從 Firebase 中提取數據。這是正常的嗎?我可以做什么來減少它?因為它的成本太高了。我認為有更好的方法。有人可以幫忙嗎? mDatabaseRef.child("FalMetinleri").addListenerForSingleValueEvent(new ValueEventListener() { @Override public void onDataChange(DataSnapshot dataSnapshot) { long KapasiteGiris= dataSnapshot.child("giris").child(finalKategoriCinsiyet).child(finalKategoriGiris).getChildrenCount(); long KapasiteKarsilama= dataSnapshot.child("karsilama").getChildrenCount(); long KapasiteAskDurumu1= dataSnapshot.child("askDurumu").child(finalKategoriCinsiyet).child(finalKategoriAskdurumu).getChildrenCount(); long KapasiteAskDurumu2= dataSnapshot.child("askDurumu2").child(finalKategoriCinsiyet).child(finalKategoriAskdurumu).getChildrenCount(); long KapasiteisDurumu1= dataSnapshot.child("isDurumu").child(finalKategoriCinsiyet).child(finalKategoriMeslek).getChildrenCount(); long KapasiteisDurumu2= dataSnapshot.child("isDurumu2").child(finalKategoriCinsiyet).child(finalKategoriMeslek).getChildrenCount(); long KapasiteBitis= dataSnapshot.child("bitis").child(finalKategoriCinsiyet).child(finalKategoriBitis).getChildrenCount(); kapasite[0] = KapasiteGiris; kapasite[1] = KapasiteKarsilama; kapasite[2] = KapasiteAskDurumu1; kapasite[3] = KapasiteAskDurumu2; kapasite[4] = KapasiteisDurumu1; kapasite[5] = KapasiteisDurumu2; kapasite[6] = KapasiteBitis; @Override public void onCancelled(@NonNull DatabaseError databaseError) { dialogFragment.dismissAllowingStateLoss(); }});輸出: KapasiteGiris:8 KapasiteKarsilama:5 KapasiteAskDurumu1:4 KapasiteAskDurumu2:14 KapasiteisDurumu1:5 KapasiteisDurumu2:4 KapasiteBitis:13CLI 報告:
2 回答

海綿寶寶撒
TA貢獻1809條經驗 獲得超8個贊
這里唯一重要的代碼是附加偵聽器的查詢:
mDatabaseRef.child("FalMetinleri").addListenerForSingleValueEvent()
它所做的就是獲取節點“FalMetinleri”下的所有內容。偵聽器內的所有其他代碼不會消耗更多數據,因為該子級的整個快照已經在內存中??雌饋碓摽煺罩杏写蠹s 1MB 的數據。
如果您不想要該子級的全部內容,則可以單獨請求其中的每個嵌套子級。這將需要為每個子項執行一個查詢,并為每個子項提供一個新的偵聽器。
添加回答
舉報
0/150
提交
取消