我在doc之后使用ChildEventListener。在数据加载期间,我只是在列表视图中显示可绘制的进度
如果列表无效,我会显示" no item"
// Get a reference to our posts
Firebase ref = new Firebase("https://docs-examples.firebaseio.com/web/saving-data/fireblog/posts");
ref.addChildEventListener(new ChildEventListener() {
// Retrieve new posts as they are added to the database
@Override
public void onChildAdded(DataSnapshot snapshot, String previousChildKey) {
BlogPost newPost = snapshot.getValue(BlogPost.class);
System.out.println("Author: " + newPost.getAuthor());
System.out.println("Title: " + newPost.getTitle());
}
//... ChildEventListener also defines onChildChanged, onChildRemoved,
// onChildMoved and onCanceled, covered in later sections.
});
使用ref.addValueEventListener
我们可以检查datasnapshot
为空是否知道它。
怎么知道列表无效?可能吗 ?没有先查看addValueEventListener
?
答案 0 :(得分:2)
您只能通过附加ValueEventListener来了解列表中没有项目。
ref.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot snapshot) {
if (!snapshot.hasChildren()) {
System.out.println("List is empty");
}
}
@Override
public void onCancelled(FirebaseError error) {
}
}
但请记住,通常如果您拨打addChildEventListener()
,您最终会将这些项目存储在某个内部存储空间中,例如List
。您也可以简单地检查内部存储空是否为空(触发onChildRemoved()
后)并在那里打印消息。