Cloud Firestore 更改字段名称

Posted

技术标签:

【中文标题】Cloud Firestore 更改字段名称【英文标题】:Cloud Firestore change field name 【发布时间】:2021-08-12 11:01:38 【问题描述】:

我的数据库喜欢;

我想,当announcement0 字段被删除时,announcement1 字段名称更改为announcement0。有没有办法做到这一点?

【问题讨论】:

【参考方案1】:

无法在 Firestore 中重命名字段,更不用说自动重命名了。

听起来您的文档中有多个公告。在这种情况下,您可以考虑将所有公告存储在单个数组字段 announcements 中。在数组字段中,当您删除第一项(在索引 0 处)后,所有其他项在数组中向下移动以取而代之,这似乎正是您想要的。

【讨论】:

arrayRemove 是否适用于对象数组? (或者你需要覆盖整个数组?) 是的,数组的东西对我的情况很明智,谢谢【参考方案2】:

您不能重命名文档中的字段。您必须删除并重新创建它。 现在我假设这个数字只是定义了文档的顺序。如果是这种情况,您可以使用此解决方法,而不是在客户端查找“announcement0”,您可以在文档中存储一个数字字段,例如在announcement0 中存储一个数字字段等。因此,要在删除通知 0 时获取通知 1,您可以使用以下查询:

const firstAnnouncement = await dbRef.orderBy('number').limit(1).get()

这将获得编号最少(最高等级)的公告。您可以根据需要更改限制。

但如果需要重命名字段,则必须删除并重新创建所有尾随公告。

【讨论】:

以上是关于Cloud Firestore 更改字段名称的主要内容,如果未能解决你的问题,请参考以下文章

如何获取我在firestore中运行json请求的表单部分的字段名称

即使文档中缺少请求的字段,如何安全地从 cloud-firestore 获取数据?

Cloud Firestore:将字段值添加到文档

Firebase - 使用 Cloud Functions 定位特定的 Firestore 文档字段

如何在 Swift 中从 Cloud FireStore Firebase 访问特定字段

Cloud Firestore 无法检索文档或字段