【发布时间】:2020-10-10 17:50:03
【问题描述】:
问题
我有一个名为 Users 的集合,其中包含一个名为 friendEmails 的字段,这是一个包含字符串的数组。
我有一个带有friendEmails = {joe@gmail.com, dan@gmail.com} 的文档,我想将newEmails = {mat@gmail.com, sharon@gmail.com} 附加到它。
问题
我知道的唯一选择是:
-
先读取
friendEmails数组,然后将它和newEmails的并集添加到文档中。 -
迭代
newEmails的元素(让我们每次迭代都在做:myCurrentDocumentReference.update(FieldValue.arrayUnion, singleStringElement);
(因为FieldValue.arrayUnion只允许我传递逗号分隔的元素,而我只有一个元素数组)。
这两个选项不好,因为第一个需要不必要的读取操作(不必要,因为 FireStore 似乎“知道”如何将项目附加到数组),第二个需要很多写入操作。
我正在寻找的解决方案
我希望 Firestore 可以让我选择附加整个数组,而不仅仅是单个元素。
类似这样的:
ArrayList<String> newEmails = Arrays.asList("mat@gmail.com", "sharon@gmail.com");
void appendNewArray() {
FirebaseFirestore firestore = FirebaseFirestore.getInstance();
firestore.collection("Users").document("userID").update("friendEmails", FieldValue.arrayUnion(newEmails));
}
我错过了什么吗?这不是一个明智的操作吗?
如果没有所有不必要的读/写操作,我还能如何执行此操作?
谢谢!
【问题讨论】:
标签: android firebase google-cloud-firestore