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 获取数据?
Firebase - 使用 Cloud Functions 定位特定的 Firestore 文档字段