React Firebase 应用程序上的条件收集注销错误
Logout error with conditional collection on React Firebase app
在我的 Navbar.js 组件上,我有一个条件元素,只有当您是网站管理员时才会显示。如果满足条件,您将看到 link,您可以导航到该页面。但是,当我注销时出现错误:
Uncaught FirebaseError: Function Query.where() requires a valid third
argument, but it was undefined.
我认为正在发生的事情是系统正在注销用户,而当 export default 中的其余代码正在完成时,它注意到 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);
在我的 Navbar.js 组件上,我有一个条件元素,只有当您是网站管理员时才会显示。如果满足条件,您将看到 link,您可以导航到该页面。但是,当我注销时出现错误:
Uncaught FirebaseError: Function Query.where() requires a valid third argument, but it was undefined.
我认为正在发生的事情是系统正在注销用户,而当 export default 中的其余代码正在完成时,它注意到 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);