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

Bit*_* Do 2 java android firebase firebase-realtime-database

我试图更改我的数据库的子项中的值,但无法在不删除该子项下的其他数据的情况下执行此操作。尝试使用 push(),但它创建了新的孩子,我想更新现有孩子的值并保存其他孩子。

在此处输入图片说明

假设我需要更改字段 1(电子邮件、姓名)的 ONLY 值并将子测试和其他数据保存在下面。

 databaseRef.child("Field 1").setValue(new UserForRealtimeDatabase("1st value of Field 1", "2st value of Field 1"));
Run Code Online (Sandbox Code Playgroud)

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

Pet*_*dad 6

您需要执行以下操作:

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);
Run Code Online (Sandbox Code Playgroud)

更多信息在这里:

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

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

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