Как получить подколлекции с Firebase Firestore?

Я пытаюсь получить все коллекции вместе с документом, я не знаю, как это сделать, я новичок в firestore.

Firebase.firestore()
      .collection("reservations")
      .doc(tripUid)
      .get()
      .then(doc => {
        console.info(doc.doc.data());
      }).catch(error => {
        console.info("Error getting document:", error);
      });

Мои данные пожарного хранилища Firebase

Не существует API для получения списка всех вложенных коллекций в клиентских SDK Cloud Firestore. См. stackoverflow.com/questions/46596532/…

Frank van Puffelen 10.04.2019 23:48

Я вижу только одну коллекцию под Ab8F ... 8AJC документом. Где вы говорите, что их больше одного?

Alex Mamo 11.04.2019 08:55
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
9
2
25 655
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Таким образом, подколлекции по-прежнему следуют общей идее Firestore. В качестве примера предположим, что у вас есть коллекция под названием «Заказы» с подколлекцией «Продукты». Чтобы получить все документы о продуктах определенного Заказа, вы должны написать что-то вроде Firebase.firestore().collection("Orders/orderid123/Products").get(), где orderid123 — это идентификатор заказа, для которого вы хотите получить продукты.

Глядя на вашу модель данных, вы фактически назвали подколлекцию, которая выглядит как сгенерированный идентификатор. Таким образом, в приведенном выше примере вместо «Продукты» вы использовали бы «ymuIjdv...». Вы можете пересмотреть то, как вы называете эту подколлекцию, чтобы дать ей более удобочитаемое имя. Похоже, вы создаете идентификатор для документа подколлекции и также используете его в качестве имени подколлекции.

В вашей точной настройке то, о чем вы просите, может быть достигнуто путем выполнения Firebase.firestore().collection("reservations/" + tripUid + "/ymuIjdvwWnOr20XWVp6gwRKtmgD2").get(). Это позволит получить все документы подколлекции в резервировании с переменной tripUid и в коллекции 'ymuIjdvwWnOr20XWVp6gwRKtmgD2'.

Спасибо. ваше решение сработало. просто хотел спросить, как получить все заказы из firestore. целая коллекция, состоящая из подколлекций. пробовал firebase.firestore().collection("orders").get() но не работает.

Yahya Rehman 02.08.2020 12:38

Всем привет. Что будет с новой версией Firebase?

Peter Palmer 25.11.2021 15:47

Это реализация Firebase Admin SDK.

Надеюсь, это поможет

firestore()
    .collection("reservations")
    .doc(tripUid)
    .listCollections()
    .then((subCollections) => {
        subCollections.forEach((subCollection) => {
            subCollection
                .get()
                .then((array) => {
                    array.docs.forEach((doc) => {
                        console.info(doc.data());
                    });
                });
        });
    });

Другие вопросы по теме