java - 遍历唯一id获取children

标签 java android firebase firebase-realtime-database

如果我的树看起来像这样:

{
unique_id_1: {
    message: "hello"
    }
unique_id_2: {
    message: "hi there"
    }
}

如果我不知道用户的唯一 ID,如何获取每个唯一 ID 的子级的所有消息?或者我必须构建数据库,以便消息只能是唯一 id 的直接子级,然后像这样遍历:

DatabaseReference database = FirebaseDatabase.getInstance().getReference();
DatabaseReference reference = database.child("message");

或者这行不通?

最佳答案

要获取所有消息,需要循环:

DatabaseReference ref = FirebaseDatabase.getInstance().getReference();

ref.addListenerForSingleValueEvent(new ValueEventListener() {
 @Override
public void onDataChange(DataSnapshot dataSnapshot) {
  for(DataSnapshot datas: dataSnapshot.getChildren()){
     String messages = datas.child("message").getValue().toString();
     }
 }
@Override
public void onCancelled(DatabaseError databaseError) {
     }
});

这里的 datasnapshot 位于根节点,如果您有唯一的 id 但没有值,您可以在这些唯一的 id dataSnapshot.getChildren() 内循环并获取消息。

您还可以通过执行 String key = datas.getKey();

检索唯一 ID

关于java - 遍历唯一id获取children,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53307576/

相关文章:

java - 导航栏中的底部按钮是什么,您有时会看到它用于更改设置

Android onPause() 或 saveInstanceState()?

javascript - 为什么 firestore/AngularFire SDK 将多个 promise 打包到一个请求中?

java - Android Notification Not getting Sound- FCM 使用 PHP

java - 如何在 Hibernate Search 中使用定冠词搜索关键字?

java - 带java接口(interface)的媒体播放器

java - Hibernate XML 映射 : Map abstract fields but not ID

java - 更改 Java 中重写方法的访问修饰符?

android - 如何在位图中存储来自 imageView 的背景图像?

ios - UITableViewCell 重复值