如何在Firebase中为现有子项添加新的“键-值”对

时间:2019-05-27 17:31:23

标签: java android firebase firebase-realtime-database

我已将我的android应用连接到firebase并启用了电子邮件和密码身份验证。我当前的数据库状态如下:

current structure of database

现在,我想为我拥有的所有用户添加一个额外的字段(键:“数字”),以使最终数据库看起来像这样:

final structure of database

所以请告诉我该怎么做?

更重要的一点是,我编写了代码,使我首先对其进行身份验证,如果他们的注册成功,则将用户带到新的活动,在收集密钥后,他们将输入此“密钥”,我应将其添加到用户节点在第二张图片中显示。

所以请告诉我该怎么做?

1 个答案:

答案 0 :(得分:0)

要在Firebase实时数据库中写入一个值,您必须知道该值的完整路径。因此,在您的情况下,这意味着您首先必须从数据库加载所有数据,才能确定动态键(C76w3...FjsZ...等)。

类似这样的东西:

DatabaseReference ref = FirebaseDatabase.getInstance().getReference();
ref.addListenerForSingleValueEvent(new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        for (DataSnapshot snapshot: dataSnapshot.getChildren()) {
            snapshot.getRef().child("key").setValue("hisoka");
        }
    }

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