java - 如何为firebase中的现有孩子添加一个新的“键值”对
问题描述
我已将我的 android 应用程序连接到 firebase 并启用了电子邮件和密码身份验证。我当前的数据库状态如下:
现在我想为我拥有的所有用户添加一个额外的字段(键:“数字”),以便我的最终数据库看起来像:
所以请告诉我该怎么做?
更重要的事情是我编写了代码,以便我首先对他们进行身份验证,如果他们的注册成功,那么我将用户带到新的活动,他们将在收集密钥后输入这个“密钥”我应该将它添加到用户节点,如第二张图片。
那么请告诉我该怎么做?
解决方案
要在 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();
}
}
推荐阅读
- php - 在最新的 WooCommerce 中,我如何为单个产品图像设置硬裁剪
- c - 递归函数,用于查找数组中连续子序列的数量,其总和在给定范围内
- python-2.7 - 如何在odoo中使用oauth访问令牌访问gmail
- javascript - 根据数组加粗 div
- c++ - 手动放置工具栏Qt c++
- javascript - 将谷歌自动完成输出仅限于城市
- java - 在调用 session.save() 时非法尝试将代理与两个打开的会话相关联
- java - Spring boot:无法打开嵌套条目“WEB-INF/lib-provided/ecj-3.12.3.jar”
- angular - Can Deactivate Guard 只能在 Angular 中运行一次
- firebase - 如何从角度 6 中的快照更改中获取有效负载和文档 ID?