我按照文档使用 ChildEventListener。在数据加载期间,我只是在 ListView 中显示一个可绘制的进度
- 如果列表不为空,则隐藏/清空进度 View 。
如果列表为空,我显示“无项目”
// 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
是否为 null 即可知道。
如何知道列表是否无效?是否可以 ?没有先检查 addValueEventListener
吗?
最佳答案
您只能通过附加一个 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()
之后)并在那里打印消息。
关于java - 如何知道 Firebase 列表是否无效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34272414/