Firebase / Firestore не обновляет данные правильно - PullRequest
0 голосов
/ 12 января 2019

Я работаю над приложением с response-native / expo и пытаюсь получить данные из Firestore.

В моей структуре базы данных у меня есть коллекция под названием «пользователи». Эта коллекция содержит пользовательские документы. У каждого пользователя есть подколлекция «userEvents», в которой хранятся ссылки на события, на которые они подписаны

Я могу получить данные из коллекции, но если происходят некоторые изменения, мои экраны не обновляются правильно.

Я получаю данные с:

onCollectionUpdate(uid){
this.setState({events: '', isLoading: true})
  let userCollection = firebase.firestore().collection("users").doc(uid).collection("uEvents");
  userCollection.onSnapshot(snapshot =>{   
    Promise.all(
      snapshot.docs.map(snap =>{
        return new Promise((resolve, reject)=>{
          const data = snap.data()
          const visited = data.visited

          data.eventRef.onSnapshot(doc =>{
            let eventData = doc.data()
            let object ={
              id: doc.id,
              visited: visited,
              title: eventData.title,
              picture: eventData.picture,
              password: eventData.password,
              eventCode: eventData.eventCode,
              description: eventData.description
            }
            resolve(object)
          })
        })
      })
    ).then(data =>{
      this.setState({events: data, isLoading: false})
    }).catch(error =>{
      console.log(error)
    })
})
}

и вызовите функцию с помощью:

    this.unsubscribe = this.onCollectionUpdate(this.state.currentUser.uid)

Когда я удаляю событие из коллекции uEvent, всегда последний элемент исчезает, пока я снова не открою приложение. Если я добавляю новое событие всегда, последний элемент отображается два раза.

Было бы неплохо, если бы кто-то мог мне помочь или дать подсказку

...