亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Firebase 實時數據庫下載使用率非常高

Firebase 實時數據庫下載使用率非常高

偶然的你 2023-09-20 19:15:39
以下代碼花費 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 的數據。

如果您不想要該子級的全部內容,則可以單獨請求其中的每個嵌套子級。這將需要為每個子項執行一個查詢,并為每個子項提供一個新的偵聽器。


查看完整回答
反對 回復 2023-09-20
?
藍山帝景

TA貢獻1843條經驗 獲得超7個贊

如果每個節點內都有大量數據,則 getChildrenCount() 是一個不好的做法。你應該嘗試firestore。



查看完整回答
反對 回復 2023-09-20
  • 2 回答
  • 0 關注
  • 120 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號