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

我的数据库喜欢;

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

【问题讨论】:

    标签: database firebase flutter dart google-cloud-firestore


    【解决方案1】:

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

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

    【讨论】:

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

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-01-07
      • 1970-01-01
      • 1970-01-01
      • 2019-02-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-09
      相关资源
      最近更新 更多