Cloud Firestore:将字段值添加到文档
Posted
技术标签:
【中文标题】Cloud Firestore:将字段值添加到文档【英文标题】:Cloud Firestore: Add Field Value To Document 【发布时间】:2020-04-25 11:33:13 【问题描述】:我想创建一个名为 question_count 的字段值,我想增加该值并将其添加到我的云 Firestore 文档中。我已经试过了:
document_reference.update("question_count", FieldValue.increment(1))
问题:我必须手动将 question_count 字段添加到我的云 Firestore 文档中,然后上面的代码将增加该值。 Cloud Firestore Dashboard 我想要什么:有人告诉我,如果尚未在云 Firestore 中创建字段值,则使用 DocumentReference update(...) 并指定字段值将创建字段值.这是一个错误的假设吗?
【问题讨论】:
【参考方案1】:update
方法仅在文档已经存在时有效。如果您要执行 要么 创建文档 或 在文档已存在时更新它的写入,请使用 docRef.set(..., SetOptions.merge())
。
所以在你的情况下,类似:
// Update one field, creating the document if it does not already exist.
Map<String, Object> data = new HashMap<>();
data.put("question_count", FieldValue.increment(1));
document_reference.set(data, SetOptions.merge());
另请参阅writing data 上的文档。
【讨论】:
跟进:我明白为什么我第一次创建文档时它不起作用。但是创建文档后更新方法仍然不起作用...您对此有何看法? 这听起来不会发生:一旦文档存在,更新应该可以工作。让我知道您是否可以重现该问题。以上是关于Cloud Firestore:将字段值添加到文档的主要内容,如果未能解决你的问题,请参考以下文章
Cloud Firestore 文档添加给出错误“参数“数据”的值不是有效的 Firestore 文档。不能使用“未定义”作为 Firestore 值”
Firebase - 使用 Cloud Functions 定位特定的 Firestore 文档字段
如何将 NSDate 值插入 Cloud Firestore 文档