我最近启动了我的Android应用,该应用使用Firebase实时数据库,但出乎意料的是,这笔账单非常庞大,因为在Firebase中下载的GB是$ 1 / GB。
我的应用目前处于暂停状态,我正在尝试尽快对其进行修复。
我以前通常不在底部添加侦听器,而总是在导致此问题的根目录添加。
A
mDatabaseReference.child("Data").child(ID).child("Details").addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
//Do Something
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
B
mDatabaseReference.child("Data").child(ID).addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if(dataSnapshot.hasChild("Details")){
//Do Something
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
如果数据不存在,第一种方法不会给出错误,但是我想知道其是否在数据库中搜索(哪个总计下载了GB)?
A 和 B 之间有什么区别,或者是更好的(如果未总计GB的下载量)
Google文档对侦听器的介绍不多。 经常在我的应用程序中添加侦听器是否总计可下载的GB? 关于连接协议和SSL加密,我还能做些什么吗?
答案 0 :(得分:0)
这意味着添加侦听器将导致从实时数据库下载数据(这是使用SDK可以从您的应用下载数据的唯一提供的方式)。如果数据已经缓存在客户端上,则响应所需的数据将更少。
A导致要下载的总体数据少于B,因为A比B更具针对性。B会导致其下的所有子项都被下载。