получить коллекцию Firestore на Android - PullRequest
0 голосов
/ 17 июня 2019

В приложении Android хранятся документы, сохраненные в Firestore по пути val documentName = "pets/$userid/$animal/$animalId". Животное может быть кошкой, собакой, птицей и т. Д. Я хочу получить всех домашних животных, принадлежащих конкретному пользователю, а затем я хочу перебрать список домашних животных.Как я могу это сделать?Я не смог найти пример.Так что в основном у меня есть

firestore.document("pets/$userId").get().addOnSuccessListener {
    // now what?
}

Ответы [ 2 ]

0 голосов
/ 17 июня 2019

Вы не можете выполнять запросы по нескольким подколлекциям в одном запросе.Запрос должен быть нацелен на одну коллекцию или подколлекцию (или запрос группы коллекций, который нацелен на все коллекции с одинаковым именем).Также клиентские SDK Firestore не могут перечислять вложенные коллекции под документом.

Возможно, вам следует реструктурировать ваши данные для поддержки запросов, которые вы намереваетесь сделать, что означает помещение всего списка вещей в одну вложенную коллекцию с предсказуемым именем.

0 голосов
/ 17 июня 2019

В клиентских SDK нет способа зацикливаться на всех коллекциях, а также нет запросов к коллекциям с разными именами.

Таким образом, единственный реальный вариант - выполнить отдельный запрос для каждого подколлекции:

firestore.document("pets/$userId/cat").get()...
firestore.document("pets/$userId/dog").get()...
firestore.document("pets/$userId/bird").get()...

И тогда вы объедините их на стороне клиента.

Я бы также подумал, нужны ли вам эти подколлекции. Вы также можете хранить их все в одной подгруппе и использовать поле для различения типов животных. Это более простая модель, которая, вероятно, будет хорошо работать для этого варианта использования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...