Firebase:如何在不更新/删除subChildren的情况下为子设置值?

时间:2018-04-19 12:42:17

标签: android firebase firebase-realtime-database

我正在尝试更改我的数据库的子项中的值,但无法删除此子项下的其他数据。尝试使用push(),但它创建了新的子项,我想要现有子项的更新值并保存其他子项。

enter image description here

让我们说我需要更改字段1(电子邮件,名称)的值,并保存子测试和其他数据。

 databaseRef.child("Field 1").setValue(new UserForRealtimeDatabase("1st value of Field 1", "2st value of Field 1"));

此代码有效,但字段1下的所有数据都完全删除。 你能帮我怎么做或可能没有标准选项吗?

1 个答案:

答案 0 :(得分:2)

您需要执行以下操作:

DatabaseReference ref=FirebaseDatabase.getInstance().getReference().child("Users").child("Field 1");
Map<String, Object> updates = new HashMap<String,Object>();
updates.put("email", newemail);
updates.put("name", newname);

ref.updateChildren(updates);

更多信息:

https://firebase.google.com/docs/database/android/read-and-write#update_specific_fields

  

public Task<Void> updateChildren (Map<String, Object> update)

     

将特定子键更新为指定值。将map中的null传递给updateChildren()将删除指定位置的值。