java - 在 Firebase 中切换子代
问题描述
为了帮助您理解,我根据 Database Reference 的子项提供了一个带有简单键名和值的图像。
我正在寻找切换两个孩子的价值观+钥匙
例如,孩子 0 有新的孩子“keyOne”,键是“keyOne”,值是“valueOne”……等等,孩子 1、2 和 3。
-
我将如何切换“0”和“1”的孩子?
通过切换孩子,我的意思是我想结束。
-
0 -> keyOne: valueOne
1 -> keyZero: valueZero
希望你们明白我的意思。如果你现在还没有,我会再试一次!
我正在寻找将孩子的键+值组合与另一个孩子的键+值组合进行切换。
谢谢!
解决方案
假设该currentMembers
节点是 Firebase 根的直接子节点,并且您的数据库如下所示:
要实现您想要的,请使用以下代码:
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference currentMembersRef = rootRef.child("currentMembers");
ValueEventListener valueEventListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
String valueZero = dataSnapshot.child("0").child("keyZero").getValue(String.class);
String valueOne = dataSnapshot.child("1").child("keyOne").getValue(String.class);
dataSnapshot.child("0").child("keyZero").getRef().setValue(valueOne);
dataSnapshot.child("1").child("keyOne").getRef().setValue(valueZero);
}
@Override
public void onCancelled(DatabaseError databaseError) {}
};
currentMembersRef.addListenerForSingleValueEvent(valueEventListener);
结果将是:
推荐阅读
- spring-boot - HTTPOnly Cookie 中的 Spring Boot + Angular 9 JWT 令牌存储
- javascript - 将接口更改为对象类型
- python - 无法从 Flask 连接到 Postgres Docker 容器
- python - 在 PyQt 应用程序中嵌入 aiohttp 服务器
- java - 获取 SQLException:ResultSet 关闭后不允许操作
- c++ - 无法从字符串转换为模板 C2664
- facebook - 无法在开发中测试 Facebook OAuth,因为“有效 OAuth 重定向 URI”不允许 localhost
- python - 仅当标题栏未在 QDockWidget 中浮动时如何删除它
- postgresql - Hassura 容器未连接到在 localhost 上运行的 postgres
- javascript - 在计算最大值和最小值Javascript时得到错误的值