Firebase v9 — Получение ссылочного содержимого документа

# #javascript #reactjs #firebase #google-cloud-firestore

#язык JavaScript #реагирует на #огневая база #google-облако-firestore

Вопрос:

Я не понимаю, почему я нигде не нахожу эту документацию.

Но у меня есть коллекция, которая называется users в моем проекте Firebase Firestore. Внутри users есть три коллекции: companies , policies и stores .

В коллекции policies у меня есть одно store поле и одно company поле, которые являются ссылками на одного из store или этого пользователя company .

Ладно, пока все в порядке. Но теперь я выполняю следующий запрос:

 const subcollectionSnapshot = await getDocs(collection(db, 'users', 'S3casIyXxdddEAaa1YJL6UjBXLy2', 'policies'));  

И ответ будет следующим: введите описание изображения здесь

Но сейчас… как я могу получить company вложенные и store вложенные документы? Как я могу «заполнить» их, чтобы увидеть их информацию и получить доступ к их полям?

Спасибо.

Ответ №1:

Похоже company store , что поля и имеют тип DocumentReference .

В этом случае вы можете получить DocumentSnapshot информацию о каждом из них, позвонив getDoc() по DocumentReference :

 subcollectionSnapshot.docs.forEach((policyDoc) =gt; {  const companyRef = policyDoc.data()["company"];  const companyDoc = await getDoc(companyRef);  const storeRef = policyDoc.data()["store"];  const storeDoc = await getDoc(storeRef);  ... })  

Если у вас несколько программных документов, вам нужно будет сделать это для каждого из них. В Firestore (как и в большинстве других баз данных NoSQL) нет концепции соединения на стороне сервера.