Согласно ответу @Frank van Puffelen, поскольку Firestore не поддерживает запросы к членам массива, вам следует немного изменить структуру базы данных. Поэтому вместо использования массивов вы должны использовать maps
. Поэтому внутри каждого документа вам нужно добавить map
, который будет выглядеть так:
Firestore-root
|
--- buses (collection)
|
--- busId (document)
|
--- buss: "/buss/OdGpiY..."
|
--- stops (map)
|
--- IQdng...526MpZ: true
|
--- pnwJ...4P3ef: true
Как видите, я добавил новую карту с именем stops
внутри документа шины, который содержит в качестве ключа, название станции и в качестве значения логическое значение true
. Используя эту структуру базы данных, вы можете запросить вашу базу данных на основе элементов, которые существуют внутри карты, например:
FirebaseFirestore rootRef = FirebaseFirestore.getInstance();
CollectionReference busesRef = rootRef.collection("buses");
Query query = busesRef.whereEqualTo("stops.IQdng...526MpZ", true);