Как отобразить данные из двух коллекций Firestore в реагировать родной - PullRequest
1 голос
/ 16 октября 2019

Я создаю приложение React Native, используя Firestore для хранения данных. В настоящее время у меня есть две коллекции, одна из которых хранит информацию о бронировании под названием «Бронирование», а другая - содержит информацию о пользователе под названием «Пользователь». Коллекции бронирования содержат user_id пользователя, участвующего в бронировании.

В настоящее время я пытаюсь пройти через все бронирования и извлечь из таблицы пользователя user_image пользователя, указанного в бронировании. Мой код выглядит следующим образом:

async retrieveSupplierImg(supplierId) {
    const userSnapshot = await firebase
      .firestore()
      .collection("User")
      .doc(supplierId)
      .get();

    return {uri: userSnapshot.data().image};
  }
async getMeetings() {
    var meetings = await firebase
      .firestore()
      .collection("Booking")
      .where("status", "==", true)
      .where("consumer_id", "==", this.state.user_id)
      .get()


    this.setState({ appointments: meetings.docs.map(doc => {
       var image = this.retrieveSupplierImg(doc.data().supplier_id);
          return {
            supplier_id: doc.data().supplier_id,
            booking_id: doc.data().booking_id,
            start_time: doc.data().start_time,
            user_image: image
        }
    })});
}
renderBooking() {

      var meetings = this.state.appointments;
    return (
      <View
        style={{
          marginTop: 10,
          marginBottom: 10,
          width: width,
          height: height * 0.19,
          justifyContent: "flex-start",
          alignItems: "center"
        }}
      >
        {meetings.map(booking => (

                <Image
                  source={booking.user_image}
                  style={{
                    height: 45,
                    width: 45,
                    borderRadius: 23,
                    marginLeft: 10
                  }}
                />

    );
  }

Этот код завершается ошибкой со следующей ошибкой:

Вы попытались установить ключ _65 со значением1 на объекте, который должен быть неизменным и заморожен.

Кто-нибудь знает, как я могу это исправить?

1 Ответ

0 голосов
/ 31 октября 2019

это уже решенная проблема. проверьте эту ссылку на Github . вам просто нужно изменить, где вы храните свои обещания (я думаю, userSnapshot и встречи) на .then(value => {Asyncstorage.setitem()})

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...