Próbuję wdrożyć kod w Firestore, który otrzyma wartości konkretnego obiektu wewnątrz Doc w Firestore, Niestety, nie mogłem znaleźć sposobu, aby to zrobić.

To jest mój kod zapytania:

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
      });
  }, []);

To jest wizerunek Firestore: Kolekcja Firestore

Chcę uzyskać dane obiektu czerwonego koła, przenieś go do obiektu lokalnego w kodzie, a następnie przedstawić swoje dane w aplikacji.

Jakieś sugestie?

0
Osher Revach 7 październik 2020, 10:05

1 odpowiedź

Najlepsza odpowiedź

O ile mogę powiedzieć z powyższych obrazów, dokument 10 zawiera tablicę, co oznacza, że będziesz musiał indeksować do tej tablicy, aby uzyskać jego elementy. Możesz wykorzystać następujący kod, aby pobrać pola obiektów {x0}}:

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()); 

    });
  });

Zauważ, że zakładam, że servicesSelected mieszka w indeksie 1 z {x1}} (Wymień YOUR_ARRAY z jego rzeczywistą nazwą).

Możesz odnieść się do oficjalnie zalecanej Dokumentacja Więcej informacji na temat reakcji rodzime dla FireBase.

0
sllopis 7 październik 2020, 08:49