是否可以在 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?

是否可以在 Visual Studio 中编写 Android 编程代码?

可以在 Android Studio 中使用 Flutter 开发 IOS 吗?