以下代码花费 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”下的所有内容。侦听器内的所有其他代码不会消耗更多数据,因为该子级的整个快照已经在内存中。看起来该快照中有大约 1MB 的数据。
如果您不想要该子级的全部内容,则可以单独请求其中的每个嵌套子级。这将需要为每个子项执行一个查询,并为每个子项提供一个新的侦听器。
添加回答
举报
0/150
提交
取消