据我所知 - 为了检查document
是否存在,我应该使用get
函数并查看它是否存在。Firestore - 检查正在更新的文档是否存在
我的问题是关于在更新时检查 - 是否有可能?(考虑到发生更新时document
可能会消失)。
我试图更新一个空的document
,我得到一个错误,说文档不存在,但我认为这可能不是检查这个问题的成功方法。
据我所知 - 为了检查document
是否存在,我应该使用get
函数并查看它是否存在。Firestore - 检查正在更新的文档是否存在
我的问题是关于在更新时检查 - 是否有可能?(考虑到发生更新时document
可能会消失)。
我试图更新一个空的document
,我得到一个错误,说文档不存在,但我认为这可能不是检查这个问题的成功方法。
有几种方式将数据写入到云公司的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());
如果您只想在文档存在的情况下执行更新,那么使用update
正是要做的事情。你观察到的行为是你可以依靠的行为。
我们专门设计了这个功能,以便可以执行文档的部分更新,而无需创建不完整的文档,否则您的代码无法处理。
所以我应该阅读onFailure处的消息,比检测是否因为文档不存在而发生?有没有一种很好的方法来检测更新是否因此而失败? –
@TalBarda见下文。您应该使用适当的操作写入数据。 –
你能用Java写这个吗?实际上,我正在使用Firebase。 –
@TalBarda完成。 –
谢谢。我会问你在上面的答案下问了什么:我可以检测操作是否因文档不存在而失败吗? –