首页 > 解决方案 > 如何为firebase中的现有孩子添加一个新的“键值”对

问题描述

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

当前数据库结构

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

数据库的最终结构

所以请告诉我该怎么做?

更重要的事情是我编写了代码,以便我首先对他们进行身份验证,如果他们的注册成功,那么我将用户带到新的活动,他们将在收集密钥后输入这个“密钥”我应该将它添加到用户节点,如第二张图片。

那么请告诉我该怎么做?

标签: javaandroidfirebasefirebase-realtime-database

解决方案


要在 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();
    }
}

推荐阅读