【发布时间】:2021-08-12 11:01:38
【问题描述】:
【问题讨论】:
标签: database firebase flutter dart google-cloud-firestore
【问题讨论】:
标签: database firebase flutter dart google-cloud-firestore
无法在 Firestore 中重命名字段,更不用说自动重命名了。
听起来您的文档中有多个公告。在这种情况下,您可以考虑将所有公告存储在单个数组字段 announcements 中。在数组字段中,当您删除第一项(在索引 0 处)后,所有其他项在数组中向下移动以取而代之,这似乎正是您想要的。
【讨论】:
arrayRemove 是否适用于对象数组? (或者你需要覆盖整个数组?)
您不能重命名文档中的字段。您必须删除并重新创建它。 现在我假设这个数字只是定义了文档的顺序。如果是这种情况,您可以使用此解决方法,而不是在客户端查找“announcement0”,您可以在文档中存储一个数字字段,例如在announcement0 中存储一个数字字段等。因此,要在删除通知 0 时获取通知 1,您可以使用以下查询:
const firstAnnouncement = await dbRef.orderBy('number').limit(1).get()
这将获得编号最少(最高等级)的公告。您可以根据需要更改限制。
但如果需要重命名字段,则必须删除并重新创建所有尾随公告。
【讨论】: