firestoreConnect или Firestore возвращает «неопределенное» при включении параметра запроса where - PullRequest
0 голосов
/ 12 февраля 2019

FirebaseConnect HOC возвращает неопределенное значение для «коллекций».Однако, если я удаляю параметры 'where', он возвращает данные.

function mapStateToProps(state) {
  return {
    contestants: state.firestore.ordered['ContestantsList-contestants'],
    votes: state.firestore.ordered['ContestantsList-votes'],
    currentUserId: state.firebase.auth.uid,
  }
}

export default compose(
  firestoreConnect(ownProps => {
    // added this console log to verify that ownProps.contestId exists.
    console.log('ownProps', {...ownProps})
    return ([
      {
        collection: 'votes',
        where: [
          ['authorId', '==', ownProps.currentUserId],
          ['contestId', '==', ownProps.contestId],
        ],
        storeAs: 'ContestantsList-votes'
      },
      {
        collection: 'contestants',
        orderBy: ['createdAt', 'asc'],
        where: ['contestId', '==', ownProps.contestId],  // <---- If I remove this line, it works
        storeAs: 'ContestantsList-contestants',
      },
    ])
  }),
  connect(mapStateToProps),
)(ContestantsList);

В приведенном выше коде votes prop - это массив данных, как и ожидалось.contestants опора возвращается как неопределенная.Я понятия не имею, почему это произошло.Я надеюсь, что это действительно очевидно для опытного пользователя Firestore.Я новичок в Firebase и Firestore.

1 Ответ

0 голосов
/ 26 февраля 2019

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

Мой подход подразумевал, что запрос выполнялся несколько раз при визуализации компонентов.Он обновлял состояние редукса несколько раз подряд.Расовое состояние наступило.

Я должен был реорганизовать свой проект так, чтобы запрос был выполнен только один раз, а затем обновил мой HOC для считывания результатов непосредственно из redux.В конце концов, это была моя проблема.

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