java - 推送完后如何获取 child 的数据?

标签 java android firebase firebase-realtime-database

我正在使用“push()”函数将对象存储到我的 firebase 数据库中,因为它使用唯一键存储数据,所以我无法使用文档中提到的内容更改存储的对象值:

myRef.child("child name").setValue(model);

因为我根本不知道 key 。我想知道是否有其他方法可以修改 firebase 数据库的数据。

我想向用户添加一个名为“对话”的新 child ,并以编程方式向他添加 child 。

这是数据库结构:

enter image description here

最佳答案

如果你有以下数据库:

 Users
    pushId
        name : john
        age  : 100

如果您不知道 pushId,您可以执行以下操作:

DatabaseReference databaseReference = FirebaseDatabase.getInstance().getReference("Users");
databaseReference.addListenerForSingleValueEvent(new ValueEventListener() {
 @Override
 public void onDataChange(DataSnapshot dataSnapshot) {
        for(DataSnapshot ds : dataSnapshot.getChildren()){
         String key = ds.getKey();
         String name = ds.child("name").getValue().toString();
     }
}

 @Override
public void onCancelled(DatabaseError databaseError) {
 }
});

以上将使用 getKey() 为您获取 name 和 key

关于java - 推送完后如何获取 child 的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55279060/

相关文章:

java - 在EditText字段中添加小数点和零,并使其随着输入而移动

android - 连接到 MySQL 数据库

android - 错误 : unknown element <intent-filter> found after upgrading to android 3. 1

javascript - 错误边界应该实现 getDerivedStateFromError()

Java执行命令行程序 'find'返回错误

java - 如何在@Around切面获取execution()切入点的返回类型?

java - 另一个 MYSQL 问题

android - 为 GridView 的每个按钮打开一个新 Activity

java - Firebase 获取 child 的 child 的引用

node.js - 获取 Firebase 函数当前区域