java - 如何知道 Firebase 列表是否无效?

标签 java android firebase firebase-realtime-database

我按照文档使用 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/

相关文章:

java - 使用接口(interface)从 Activity 到 Fragment 进行通信

java - Firebase 在类上找不到要序列化的属性

firebase - 如何在Flutter中与类 “flutter pub run build_runner build”具有字段Timestamp?

android - 使用 Firebase 进行 Robolectric 应用程序测试

java - 获取包(jar)中具有特定后缀的所有资源

java - 将字符串数组转换为整数数组

java - Android 版 Google map 签名流程

java - 如何将单个字符分配给 TextView

java - 如何在 Android Google Maps v2 中创建带有传感器方位的位置箭头标记?

java - 如何在现有布局中用 java 代码创建 ImageView?