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 值”

Firestore 将值添加到数组字段

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

如何将 NSDate 值插入 Cloud Firestore 文档

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

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