У меня есть следующий документ:
{
"ID" : "01",
"Name" : "A1",
"players" : [ {
"active" : false,
"name" : "dissident"
}, {
"active" : false,
"name" : "ink"
}
]
}
Написал это в JSON, чтобы его было легче понять.
Теперь, что я хочу сделать с firestore, это запрос по имени игроков [*].
Я видел новую опцию использования "array_contains".
Но я видел, что все примеры используют массив строк вместо массива объектов.
Можно ли запросить у игрока [*]. Name?
Вот что я попробовал:
this.afs.collection('Locations', ref => ref.where('players.name', 'array-contains', _name))
На основании реакции @camden_kid, которую я строю:
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}) );
}
Но это зависит от активного значения to, это не сработает в любой ситуации.