Reputation: 549
So I have a set of items in Firestore, and I want to change a property in a document when a criteria is met in Firestore.
When every user in the users collection has the answered property as true, I want to set the "all_answered" property to true as well in the Room document. These User docs will be on different devices, obviously. How can I do this?
Upvotes: 0
Views: 216
Reputation: 598668
There are a few common approaches here, and some complications. For easier parsing I'll put them in a list.
"All answered" is a dynamic value, i.e. when a new user joins the system the value should become false again. For this reason I recommend keeping a counter for the number of users that have answered, and for the total number of users. If the two values are the same, all people have answered.
With that, you can then update the answeredCount
property whenever any user updates their answered
property value. Doing this in a transaction or batched write to ensure it's atomic.
Then when you need to know if all users have answered, you read the user count in your code, and then run a query where you compare answeredCount
with the value you just read.
An alternative approach, closer to what you suggest already in your question:
Upvotes: 1