Как выразить вложенные поля в методе where () AngularFirestore - PullRequest
0 голосов
/ 29 апреля 2018

Я использую метод firestore where (), чтобы проверить равенство вложенного поля другому значению. Вложенное поле находится в структуре документа: Квартиры / Квартира / Недвижимость / Адрес / locality_short

Вот как я сейчас это делаю (в коде ниже), но он не возвращает никаких документов: // Там импорт импорт {AngularFirestore} из 'angularfire2 / firestore';

// Инъекция конструктор (частный afs: AngularFirestore) {}

// Метод, который извлекает квартиры в зависимости от того, //apartment.property.address.locality_short == search_object.locality_short

search (search_obj: Search): наблюдаемый { вернуть this.afs.collection ('/ Квартиры', ref => ref.where (property,address,locality_short, '==', 'Search_obj.Address.locality_short')). ValueChanges () }

1 Ответ

0 голосов
/ 29 апреля 2018

Решено! после опробования различных способов выражения вложенного fieldPath выясняется, что с помощью точки '.' разделение уровней вложенности работает просто отлично, и моей другой ошибкой было выражение значения в методе where () в виде строки, а не фактического значения. Таким образом, приведенный ниже код работает и возвращает результаты на основе оценки вложенного fieldPath по значению в методе where () angularfirestore

search (search_obj: Search): наблюдаемый { вернуть this.afs.collection ('/ Квартиры', ref => ref .где (property.address.locality_short, '==', search_obj.Address.locality_short)) .valueChanges () }

...