java - 如何为 firebase 中的现有子项添加新的 "key-value"对

标签 java android firebase firebase-realtime-database

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

current structure of database

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

final structure of database

那么请告诉我该怎么做?

更重要的是,我编写了代码,以便首先对它们进行身份验证,如果它们注册成功,那么我将用户带到新的 Activity,他们将在收集 key 后输入此“ key ”,我应该将其添加到用户节点,如下所示如第二张图所示。

那么请告诉我该怎么做?

最佳答案

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

关于java - 如何为 firebase 中的现有子项添加新的 "key-value"对,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56330296/

相关文章:

java - 如何在 android studio 中调用已编译的 jar 文件的 java 类?

android - 是否需要退订

javascript - Firebase 警告 : Using an unspecified index when search data with Firebase Cloud Function

android - 如何从firebase数据库中的嵌套节点检索所有数据

java - Spark Java 应用程序 UDF 的日志未出现在控制台或执行程序日志文件中

java - 接口(interface)的默认实现?或保留为空

java - 替换特定字符串的文件反射(reflect)

java - 在 Android 应用程序中从 strings.xml 分配值时无法获取选定的微调器值

android - Firebase signInWithEmailAndPassword 和 createUserWithEmailAndPassword 在 Android 中不起作用

java - 在 Oracle 中构建图像数据库 - 电子商务风格的界面可行吗?