據我所知 - 爲了檢查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完成。 –
謝謝。我會問你在上面的答案下問了什麼:我可以檢測操作是否因文檔不存在而失敗嗎? –