所以我在 Firestore 中有一組專案,我想在 Firestore 中滿足條件時更改檔案中的屬性。
- 房間集合
- 房間檔案
- ...特性
- all_answered 屬性
- 用戶集合
- guid 用戶檔案
- 回答屬性
- guid 用戶檔案
- 回答屬性
- guid 用戶檔案
- 房間檔案
當用戶集合中的每個用戶都將已回答的屬性設定為 true 時,我想在 Room 檔案中也將“all_answered”屬性設定為 true。顯然,這些用戶檔案將在不同的設備上。我怎樣才能做到這一點?
uj5u.com熱心網友回復:
這里有一些常見的方法,也有一些并發癥。為了更容易決議,我將它們放在一個串列中。
“全部回答”是一個動態值,即當新用戶加入系統時,該值應該再次變為假。出于這個原因,我建議為已回答的用戶數和用戶總數保留一個計數器。如果兩個值相同,則所有人都已回答。
這樣,您就可以
answeredCount
在任何用戶更新其answered
屬性值時更新該屬性。在事務或批量寫入中執行此操作以確保它是原子的。然后,當您需要知道是否所有用戶都已回答時,您可以讀取代碼中的用戶數,然后運行查詢,將
answeredCount
其與剛剛讀取的值進行比較。
另一種方法,更接近您在問題中已經提出的建議:
- 您還可以定期運行一個查詢來計算用戶數和回答的用戶數(都使用新的COUNT() 功能),并根據這些計數設定標志欄位。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/523818.html
標籤:Google Cloud Collective 扑火力基地谷歌云火库
上一篇:從另一個函式中更改jetpackcomposeremember變數
下一篇:如何更改對話框?(撲)