推送后如何获取孩子的数据?

时间:2019-03-21 11:08:12

标签: android firebase firebase-realtime-database

我正在使用“ push()”函数将对象存储到我的Firebase数据库中,并且由于它使用唯一键存储数据,因此我无法使用文档中提到的内容更改存储的对象值:

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

因为我根本不知道密钥。我想知道是否还有另一种修改Firebase数据库数据的方法。

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

这是数据库结构:

enter image description here

1 个答案:

答案 0 :(得分:2)

如果您具有以下数据库:

 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) {
 }
});

以上内容将为您提供name和使用getKey()的钥匙