android - Firebase 更新列表值

标签 android firebase firebase-realtime-database

有数据结构:

 categories
      0 : category1,
      1 : category2,
      2 : category3

我想同时向这个结构添加值。 看起来 updateChildren() 方法将用一个新列表替换列表。

     Map<String, Object> childUpdates = new HashMap<>();
     FirebaseDatabase.getInstance().getReference().updateChildren(childUpdates);

实现这个的最佳实践是什么?

最佳答案

这是不好的做法。 (要找出原因,请查看 here )和 .不要使用 0:1: 等,而是使用 Firebase push() 方法。它会生成一个唯一的 key ,如 -K9929EDDJDODAK939。您的结构将如下所示:

categories:
   -K9929EFDADFAK939: category 1,
   -DFADF9ADFFDF: category 2,
    K99DF9EDDJDO9: category 3

为此,在将它们保存到数据库时使用 push() 方法,如下所示:

ref.child("categories").push().setValue(valueOrHasMap);

您不需要使用 updateChildren(),只需像我提到的那样保存它们。它将继续保存并且不会替换任何现有的。

有关更多信息,您应该阅读 docs ,尤其是如何retrieve data使用此方法时。

有关在 Firebase 中避免数组的更多信息:(感谢@Wiliks 提供的链接)Best Practices: Arrays in Firebase

关于android - Firebase 更新列表值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39555692/

相关文章:

android - 如何更改抽屉导航字体?

android - 自定义对话框无法正常出现

java - CreateView 方法上的自定义对话框在 firebase firestore onCompletelistener 获取数据到列表之前返回

android - React Native 中的 RecyclerView : notifyItemInserted() and notifyDataSetChanged() have no effect

android - 在我的项目中没有使用 firebase 但仍然抛出 Firebase API 初始化失败

ruby-on-rails - 如何在Ruby on Rails中使用Firebase?

android - 使用真实的 BLE 设备运行测试

java - Android - 暂停执行直到声音播放

firebase - 如何使用控制台在 firebase 实时数据库中添加根级节点

javascript - 如何使用 Firebase Firestore 获取子集合?