I have the following document:
{
"ID" : "01",
"Name" : "A1",
"players" : [ {
"active" : false,
"name" : "dissident"
}, {
"active" : false,
"name" : "ink"
}
]
}
Wrote it down in JSON so it's easier to understand. Now what I want to do with firestore is query on the players[*].name. I have seen the new option to use "array_contains".
But I have seen all examples use an array of string instead of an array of objects. Is it possible to query over the players[*].name?
This is what I tried:
this.afs.collection('Locations', ref => ref.where('players.name', 'array-contains', _name))
Based on @camden_kid reaction I build:
this.locationsCollection = this.afs.collection('Locations', ref => ref.where('players', 'array-contains', {active : false, name : _name}) );
if(this.locationsCollection === undefined){
this.locationsCollection = this.afs.collection('Locations', ref => ref.where('players', 'array-contains', {active : true, name : _name}) );
}
But this is depended on the active value to, this will not work on every kind of situation.
You can try testing against the whole object, e.g.
this.afs.collection('Locations', ref => ref.where('players', 'array-contains', {active : false, name : _name}))
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