# #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) нет концепции соединения на стороне сервера.