#android #firebase #google-cloud-firestore
#Android #firebase #google-облако-firestore
Вопрос:
На рисунке 1 показана иерархия моей базы данных.
Я пытаюсь получить названия курсов [Android, брендинг …. ]. Данные, выделенные курсивом (брендинг, другие), добавляются командами backend — post, а другие данные добавляются при вводе. При извлечении извлекаются только данные, не выделенные курсивом, как показано на скриншоте 2. Я не могу понять, почему это может происходить. На скриншоте 2 также показан запрос, который я использую для того же. Пожалуйста, помогите!!
Комментарии:
1. Пожалуйста, не публикуйте скриншоты вашего кода или другого текстового содержимого. Вместо этого опубликуйте фактический текст и используйте инструменты форматирования Stack Overflow для его разметки.
Ответ №1:
При извлечении извлекаются только данные, не выделенные курсивом, как показано на скриншоте 2
Идентификаторы документов, выделенные курсивом, означают, что на самом деле документа на его месте нет; однако есть вложенные коллекции с документами, организованными под ними. Запрос Firestore возвращает только непустые документы.
У вас есть два варианта,
- Если вы уверены в своих идентификаторах документов, вы можете напрямую получить доступ к коллекции
firestore.collection('users/groups/groupID/courses/others/courses').get()
- Использование
collectionGroup
запросов; но, похоже, у вас много коллекций с одинаковым идентификаторомcourses
, поэтому он может восстановить все и может вам не подойти! Я рекомендую вам прочитать документ firabase для его ограничений
firestore.collectionGroup('courses').get()