【发布时间】:2017-10-06 22:19:15
【问题描述】:
我已经为我的应用设置了一个 Firebase 数据库,它看起来像这样:
app
-category
-subCategory
-subSubCategory
我的addChildEventListener() 设置如下:
mDatabase.child("category").addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
if (dataSnapshot != null) {
} else {
Log.d("dataSnapshot", "null");
}
}
@Override
public void onChildChanged(DataSnapshot dataSnapshot, String s) {
}
@Override
public void onChildRemoved(DataSnapshot dataSnapshot) {
}
@Override
public void onChildMoved(DataSnapshot dataSnapshot, String s) {
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
我想在数据库为空时向用户显示警报,所以我尝试删除数据库中的所有内容,然后它看起来像这样:
app: null
但即使是现在具有Log.d("dataSnapshot", "null"); 行的条件也没有被调用。
编辑:
我加了
mDatabase.child("category").addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if (dataSnapshot != null) {
Log.d("dataSnapshot", "AVAILABLE");
} else {
Log.d("dataSnapshot", "NULL");
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
我得到了D/dataSnapshot: AVAILABLE 打印出来。当数据库中没有数据时,这怎么可能?
为什么会发生这种情况?当数据库为空时,我可以做些什么来向用户显示警报?
【问题讨论】:
-
@NirmalVaghasiya 你指的是哪个?
标签: android firebase firebase-realtime-database