Ошибка выхода из системы с условным сбором в приложении React Firebase - PullRequest
1 голос
/ 16 марта 2019

В моем компоненте Navbar.js есть условный элемент, который отображается только в том случае, если вы являетесь администратором сайта.Если условие выполнено, вам показывают ссылку и вы можете перейти на страницу.Однако, когда я выхожу из системы, мне выдается ошибка:

Uncaught FirebaseError: Функция Query.where () требует допустимого третьего аргумента, но он не определен.

ЧтоЯ думаю, что происходит то, что система выходит из системы пользователя, и в то время как остальная часть кода в экспорте по умолчанию заканчивается, она замечает, что props.auth.uid не существует.Есть ли другие мысли о том, что происходит, и может ли кто-нибудь помочь мне это исправить.Заранее спасибо ...

// SiteAdministrators.js Component showing database query
const mapStateToProps = (state) => {
  const auth = state.firebase.auth

  return {
    messages: state.firestore.ordered.messages,
    siteAdmin: state.firestore.ordered.siteAdministrators,
    auth: auth
  }
}

export default compose(
  connect(mapStateToProps),
  firestoreConnect(props => {
    return [
        { collection: 'messages', where: [['replied', '==', false]] },
        { collection: 'siteAdministrators', where: [['pilotId', '==', props.auth.uid]]}
      ]
  })
)(SiteAdministrator);

// NavbarLinks.js Component showing logout function
const mapDispatchToProps = (dispatch) => {
  return {
    logout: () => dispatch(logout())
  }
}

export default compose(
  connect(mapStateToProps, mapDispatchToProps),
  firestoreConnect(props => {
    return [
        { collection: 'siteAdministrators' }
      ]
  })
)(LoggedInLinks)

1 Ответ

0 голосов
/ 16 марта 2019

Я попытался добавить условие в запрос where.Я не уверен, что это правильно, но в настоящее время это работает.Пожалуйста, дайте мне знать, если это приемлемое программирование.

export default compose(
  connect(mapStateToProps),
  firestoreConnect(props => {
    return [
        { collection: 'messages', where: [['replied', '==', false]] },
        { collection: 'siteAdministrators', where: [['pilotId', '==', props.auth.uid || null]]}
      ]
  })
)(SiteAdministrator);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...