【发布时间】:2021-02-01 19:19:02
【问题描述】:
假设我想为 firestore 中的每条记录添加一个新字段,例如。 isArchived: boolean
但是,数据库已经在生产中了!这带来了最大的问题:
您不能查询像
where('isArchived', '!=', true)这样的文档,因为这将不包括没有新字段isArchived的文档。
添加新字段的策略
- 首先更新数据库中的所有文档并添加新字段
- 然后可以查询
where('isArchived', '!=', true)
剩下的问题
当一些客户端没有更新到我的应用程序的最新版本时,他们仍然会添加没有新字段的文档。所以新版本的搜索逻辑还是会漏掉文档。
解决剩下的问题
还添加了一个云功能,可在添加新记录时检查缺失的字段。
但是新的问题是:
- 这将花费我每写入一条记录的双倍费用
- 很难知道何时可以弃用此云功能
请求建议
我觉得以后一定有更好的方法可以将新字段添加到记录中。 (使用 SQL 可以迁移并设置默认值?)
谁能给我一个比我目前使用的非常糟糕的解决方法更好的解决方案?
【问题讨论】: