有数据结构:
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/