我正在使用“ push()”函数将对象存储到我的Firebase数据库中,并且由于它使用唯一键存储数据,因此我无法使用文档中提到的内容更改存储的对象值:
myRef.child("child name").setValue(model);
因为我根本不知道密钥。我想知道是否还有另一种修改Firebase数据库数据的方法。
我想向用户添加一个称为“对话”的新孩子,并以编程方式向他添加孩子。
这是数据库结构:
答案 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()
的钥匙