根据新的Firestore文档,我看到了两个用于处理文档中嵌套数组的新方法(arrayUnion,arrayRemove)。这些方法允许您添加和删除数组项,但是如何更新现有元素呢?
发布于 2018-12-13 16:24:46
没有update方法,因为如果要执行更新,则需要知道该特定元素的索引。在谈到Cloud Firestore阵列时,事情可能与您想象的不同。
因为我们正在创建可以在多用户环境中使用的应用程序,所以尝试考虑如果用户想要编辑索引0处的值,其他用户想要删除索引0处的值,同时其他用户可能想要在索引0处添加另一项,会发生什么情况。可以肯定的是,你最终会得到非常不同的结果,为什么不呢,甚至可以得到一个ArrayIndexOutOfBoundsException。所以Firestore对数组的操作有一点不同。因此您不能在特定索引上执行诸如insert、update或delete之类的操作。
正如Doug在他的回答中提到的,如果这两种方法对您的帮助还不够,您应该获取整个文档,获取数组,修改它并将其添加回数据库。
发布于 2018-12-13 04:59:51
如果arrayUnion或arrayRemove不能满足您对数组的修改,则必须阅读文档,修改内存中的数组值,然后使用新数组的整体更新数组字段。
https://stackoverflow.com/questions/53750901
复制相似问题