I am using the new Cloud Firestore in Android. So I am facing this issue in firestore. I want to query a document, which contains an id in their array fields.
for example, I have a document with a field in firestore containing an array of integers like this:
So when I have an id 66940, I can get the document and other documents which contains the id, without returning other documents which don't contain the id 66940.
Other than this approach, I can also use the id (66940) to search it in the document id. My documents id format is like this:
- 66940_88123
- 12323_66940
The idea is, to return documents which contain 66940 in their ID. I've read about a solution here, but I don't really understand how to implement it.
This is a common question, so we have posted some documentation on how to work with arrays in Cloud Firestore: https://firebase.google.com/docs/firestore/solutions/arrays
In short, if you want to query for array membership it's better to store your data as a map of booleans.
So instead of this:
{
name: "sam",
userGgIds: [12345, 67890]
}
You want this:
{
name: "sam",
userGgIds: {
12345: true,
67890: true
}
}
Then you can do this query to search for documents that contain the ID "12345"
db.collection("users").where("userGgIds.12345", "==", true).get()
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With