以下代碼花費(fèi) 1MB 從 Firebase 中提取數(shù)據(jù)。這是正常的嗎?我可以做什么來減少它?因?yàn)樗某杀咎吡?。我認(rèn)為有更好的方法。有人可以幫忙嗎? 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 報(bào)告:
2 回答

海綿寶寶撒
TA貢獻(xiàn)1809條經(jīng)驗(yàn) 獲得超8個(gè)贊
這里唯一重要的代碼是附加偵聽器的查詢:
mDatabaseRef.child("FalMetinleri").addListenerForSingleValueEvent()
它所做的就是獲取節(jié)點(diǎn)“FalMetinleri”下的所有內(nèi)容。偵聽器內(nèi)的所有其他代碼不會(huì)消耗更多數(shù)據(jù),因?yàn)樵撟蛹?jí)的整個(gè)快照已經(jīng)在內(nèi)存中。看起來該快照中有大約 1MB 的數(shù)據(jù)。
如果您不想要該子級(jí)的全部內(nèi)容,則可以單獨(dú)請(qǐng)求其中的每個(gè)嵌套子級(jí)。這將需要為每個(gè)子項(xiàng)執(zhí)行一個(gè)查詢,并為每個(gè)子項(xiàng)提供一個(gè)新的偵聽器。

藍(lán)山帝景
TA貢獻(xiàn)1843條經(jīng)驗(yàn) 獲得超7個(gè)贊
如果每個(gè)節(jié)點(diǎn)內(nèi)都有大量數(shù)據(jù),則 getChildrenCount() 是一個(gè)不好的做法。你應(yīng)該嘗試firestore。
添加回答
舉報(bào)
0/150
提交
取消