据我所知 - 为了检查是否存在int(-32768<=i<=32767)
,我应该使用document
函数并查看是否存在。
我的问题是关于更新时检查 - 是否可以?(考虑到更新发生时get
可能已消失)。
我试图更新一个空的document
,但我收到一条错误消息,说该文档不存在,但我认为这可能不是检查此内容的成功方法。
答案 0 :(得分:3)
如果您只想在文档存在时执行更新,则使用update
正是要做的事情。您观察到的行为是您可以依赖的行为。
我们专门设计了这个,以便可以执行文档的部分更新,而不会创建您的代码未准备好处理的不完整文档。
答案 1 :(得分:3)
有几种方法可以将数据写入Cloud Firestore:
SetOptions.merge()
。set()
,但如果文档已存在则会失败。所以你只需要为你的用例使用正确的操作。如果要在不知道文档是否存在的情况下更新文档,则需要使用set()
这样的merge()
选项(此示例适用于Java):
// Update one field, creating the document if it does not already exist.
Map<String, Object> data = new HashMap<>();
data.put("capital", true);
db.collection("cities").document("BJ")
.set(data, SetOptions.merge());
答案 2 :(得分:0)
我们可以使用 update 并将掩码参数设置为 true 像这样:-
firestore.updateDocument("GFrom/"+data.email,data, true);
答案 3 :(得分:0)
尝试更新不存在的文档的最简单方法是:
try {
await db.collection('cities').doc('BJ').update('key', 'value')
} catch (error) {
// document not exists, do nothing
}