更新 Firestore 数据库中文档的字段

Posted

技术标签:

【中文标题】更新 Firestore 数据库中文档的字段【英文标题】:Update a field of a document in Firestore database 【发布时间】:2021-04-22 02:29:14 【问题描述】:

我是一名 ios 应用程序开发人员。现在,当用户点击按钮时,我需要我的应用程序更新他/她在数据库 (Firestore) 中的分数。

我只知道可以根据官方文档:https://firebase.google.com/docs/firestore/quickstart#swift向数据库添加新文档。但是我可以一次只更新一个文档中的一个键值对吗?

例如,如果他/她单击正确的按钮,我必须为 ID 为 1234 的用户添加 10 分。所以首先,我需要根据唯一ID读取数据,并抓住他/她的当前积分。然后把积分加10放回去。

Firestorage 似乎只允许用户一次上传整个文档。

感谢 Swift 代码 sn-p!

【问题讨论】:

【参考方案1】:

您可以通过updateData 呼叫update a single or multiple fields in a document。

到atomically increment a numeric value可以使用FieldValue.increment操作。这个例子来自最后一个链接:

washingtonRef.updateData([
    "population": FieldValue.increment(Int64(50))
])

此代码将文档中的 population 字段增加 50,而文档中的其他字段保持不变。

【讨论】:

以上是关于更新 Firestore 数据库中文档的字段的主要内容,如果未能解决你的问题,请参考以下文章

更新firestore文档中嵌套对象中的字段?

有没有办法使用Firestore安全规则使用FieldValue.increment()更新文档字段?

Firestore 只更新一个字段

除非我先刷新,否则 React 应用程序中的 Firestore 文档字段更新会给出 TypeError

Firestore使用Rest API更新文档字段

有没有办法根据 firebase Auth 用户信息更新 firestore 文档字段?