#firebase #react-native #google-cloud-firestore
#firebase #react-native #google-облако-firestore
Вопрос:
Я пытаюсь реализовать код в Firestore, который будет получать значения определенного объекта внутри документа в firestore, к сожалению, я не смог найти способ сделать это.
Это мой код запроса:
useEffect(() => {
firebase
.firestore()
.collection("users")
.doc(uid)
.collection("confirmed-appointments")
.get()
.then((snapshot) => {
let service = [];
snapshot.forEach((doc) => {
service.push(doc.data());
});
console.log("Services: ", service[0].servicesSelected); //Checking if i can get the serviceSelected Obj
});
}, []);
Я хочу получить данные объекта Red circle, переместить его в локальный объект в коде, а затем представить его данные внутри приложения.
есть предложения?
Комментарии:
1.
doc.data().servicesSelected
вы получили данные по этому коду?2. Нет, я не определил для этого
3. вы проверили, получаете ли вы данные внутри вашего снимка?
4. Да, если я вызываю service, а не serviceSelected, я получаю все данные из документа, журнал выглядит как прикрепленное изображение
5. Пожалуйста, опубликуйте, какие данные вы получаете в сервисе
Ответ №1:
Насколько я могу судить по приведенным выше изображениям, документ 10 содержит массив, что означает, что вам нужно будет индексировать этот массив, чтобы получить его элементы. Вы можете использовать следующий код для извлечения полей servicesSelected
объекта:
import firestore from '@react-native-firebase/firestore';
firestore()
.collection('users')
.doc(uid)
.collection("confirmed-appointments")
.get()
.then(querySnapshot => {
//let service = [];
console.log('Total confirmed appointments: ', querySnapshot.size);
querySnapshot.forEach(documentSnapshot => {
console.log("Services Selected: ", documentSnapshot.data().YOUR_ARRAY[1].servicesSelected);
//service.push(documentSnapshot.data());
//console.log('Appointment ID: ', documentSnapshot.id, documentSnapshot.data());
});
});
Обратите внимание, что я предполагаю, что servicesSelected
он находится в индексе 1 YOUR_ARRAY
( YOUR_ARRAY
замените его фактическим именем).
Вы можете обратиться к официально рекомендованной документации для получения более подробной информации о React Native для Firebase.