在React Firebase应用程序上有条件收集的注销错误



在我的navbar.js组件上,我有一个条件元素,仅在您是SiteAdeAdministrator时才显示。如果满足条件,则向您显示链接,并且可以导航到页面。但是,当我注销时,我会出现错误:

未接收的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)

我尝试在WHERE查询中添加条件。我不确定这是正确的,但目前正在工作。请让我知道这是否可以接受。

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

最新更新