将侦听器添加到不存在的值
Adding listener to a value which doesn't exist
我最近推出了我的 android 应用程序,它使用 Firebase 实时数据库,但出乎意料的是,由于在 Firebase 中下载的 GB 为 1 美元/GB,因此账单非常大。
我的应用程序现在处于暂停状态,我正在尝试尽快修复它。
我以前不在底部添加侦听器,而总是在导致此问题的根部添加。
一个
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 之间有什么区别还是 A 更好(如果下载量加起来不超过 GB)
google 文档并没有详细说明侦听器。
经常在我的应用程序中添加侦听器是否会增加 GB 的下载量?
还有关于连接协议和 SSL 加密我能做些什么吗?
暗示添加侦听器会导致从实时数据库下载数据(这是使用 SDK 从您的应用下载数据的唯一提供方式)。如果数据已缓存在客户端上,则响应所需的数据将更少。
A导致下载的整体数据比B少,因为A比B更具体。B会导致其下children全部下载。
我最近推出了我的 android 应用程序,它使用 Firebase 实时数据库,但出乎意料的是,由于在 Firebase 中下载的 GB 为 1 美元/GB,因此账单非常大。
我的应用程序现在处于暂停状态,我正在尝试尽快修复它。
我以前不在底部添加侦听器,而总是在导致此问题的根部添加。
一个
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 之间有什么区别还是 A 更好(如果下载量加起来不超过 GB)
google 文档并没有详细说明侦听器。 经常在我的应用程序中添加侦听器是否会增加 GB 的下载量? 还有关于连接协议和 SSL 加密我能做些什么吗?
暗示添加侦听器会导致从实时数据库下载数据(这是使用 SDK 从您的应用下载数据的唯一提供方式)。如果数据已缓存在客户端上,则响应所需的数据将更少。
A导致下载的整体数据比B少,因为A比B更具体。B会导致其下children全部下载。