如何使用 Android 更新 Firestore 中的数组元素?

Posted

技术标签:

【中文标题】如何使用 Android 更新 Firestore 中的数组元素?【英文标题】:How to update array elements in Firestore with Android? 【发布时间】:2019-02-17 04:00:22 【问题描述】:

我读到这个post 和这个post 的同一个人说你不能更新数组元素。

我还阅读了最近的 article,其中说这可以通过 arrayUnion 或类似的方式以某种方式完成,但我无法在文档中获得有关 *** 的任何信息。

有什么办法可以解决这个问题吗?谢谢!

【问题讨论】:

查看此链接:firebase.google.com/docs/firestore/manage-data/… [更新数组中的元素] 如果您的文档包含数组字段,您可以使用 arrayUnion() 和 arrayRemove() 来添加和删除元素。 arrayUnion() 将元素添加到数组中,但只添加不存在的元素。 arrayRemove() 删除每个给定元素的所有实例。 欢迎来到 ***,即使提供问题链接可以很好地解释您所面临的问题,但仍然建议您提供更多有关您要解决的问题的背景和解释。 嗯,已经在此链接***.com/questions/46757614/… 中回答了您的问题 @AshishDas 谢谢,但我正在寻找 android,该答案提供了 javascript 解决方案,但不明白。 @smn.tino 我需要知道这是否可能,所以我可以在我的项目中使用这个功能,我知道这是可能的。还是谢谢。 【参考方案1】:

实际上,写这些答案的“人”是我 :) 那时,您无法更新数组元素。只能存储数组,而不能更新数组成员。

现在,在更新文档时,您可以将第二个参数作为第二个参数传递给 update() 方法:

FieldValue.arrayUnion("newArrayValue")

您可以在官方文档中找到更多关于update elements in an array的信息。

如果您的文档包含数组字段,您可以使用 arrayUnion() 和 arrayRemove() 来添加和删除元素。 arrayUnion() 将元素添加到数组中,但只添加不存在的元素。 arrayRemove() 删除每个给定元素的所有实例。

附:我也会更新这些答案。

【讨论】:

以上是关于如何使用 Android 更新 Firestore 中的数组元素?的主要内容,如果未能解决你的问题,请参考以下文章

Android Firebase FireStore实时更新分页

如何在 Android Studio 中使用 Kotlin 从 Firestore 数据库中获取下一条和上一条数据?

添加新文档时,kotlin firestore 未更新我的 android 应用程序

Cloud Firestore:从 API 添加和更新数据

如何使用 Firestore 函数更新地图中的数组?

如何使用 Batch 更新 Firestore 中的 500 多个文档?