是否可以在 Android Studio 中使用 Firebase 数据库添加子代同时保留旧代?
Posted
技术标签:
【中文标题】是否可以在 Android Studio 中使用 Firebase 数据库添加子代同时保留旧代?【英文标题】:Is it possible to add childs while keeping old ones using Firebase databse in Android Studio? 【发布时间】:2021-12-27 21:00:42 【问题描述】:我正在使用智能手机传感器从 Firebase 的列表中保存坐标。 X 被保存在一个名为“坐标 X”的孩子上,而 Y 被保存在一个名为“坐标 Y”的孩子身上。这两个孩子都在一个名为“路径 1”的孩子中。
我想要的是:每次我运行应用程序来添加坐标,但在另一个同名的孩子中,像这样 -->
实际上是这样的: enter image description here
我想要它: enter image description here
现在,每次我运行应用程序时,它都会覆盖子坐标 X 和 Y。每次运行应用程序时,我想用新坐标再添加两个子坐标“X 坐标”和“Y 坐标”。 我尝试使用 push(),但很难理解新数据和旧数据是什么,而且它确实没有分割每个应用程序运行的坐标。
如果我解释得不好,我很抱歉。谢谢!
【问题讨论】:
也发布在reddit.com/r/Firebase/comments/qvgazm/… 【参考方案1】:根据定义,键在其父级中是唯一的,因此您不能在单个父级下拥有多个名为 Coordinate X
的子节点。
对此的惯用方法是通过为每组坐标调用push
来创建一个唯一命名的子节点列表。
如果您使用的是 android SDK(假设您使用 Android 标记),那就是:
DatabaseReference ref = FirebaseDatabase.getInstance().getReference("Path 1");
Map coordinates = new HashMap();
coordinates.put("X", 123);
coordinates.puth("Y", 456);
ref.push().setValue(coordinates);
另请参阅 reading and writing lists of data 上的 Firebase 文档。
【讨论】:
我最终根据老师的要求更改了数据库设置,因此我不再需要遵循我尝试实施的方法!无论如何,谢谢您的回答,但是我尝试了但无法获得正确的结果。再次感谢您!以上是关于是否可以在 Android Studio 中使用 Firebase 数据库添加子代同时保留旧代?的主要内容,如果未能解决你的问题,请参考以下文章
是否可以使用 Android Studio 将 Kotlin 转换为 Java? [复制]
是否可以在 Android Studio 中使用 Firebase 数据库添加子代同时保留旧代?
是否可以在 Android Studio 中调试 C/C++?
是否可以在 Android-Studio 或 IntelliJ 上使用 SWT?