Reactjs 是否有一种基于当前通过uid登录的用户返回数据的有效方法?
我正在构建一个以Firebase为后端的react redux应用程序。该应用程序允许用户创建帐户,并在此过程中创建公司和用户角色。用户角色包含用户id和公司id。我只想在用户角色与uid匹配的位置同步公司数据 我像这样连接到firestore:Reactjs 是否有一种基于当前通过uid登录的用户返回数据的有效方法?,reactjs,firebase,redux,google-cloud-firestore,Reactjs,Firebase,Redux,Google Cloud Firestore,我正在构建一个以Firebase为后端的react redux应用程序。该应用程序允许用户创建帐户,并在此过程中创建公司和用户角色。用户角色包含用户id和公司id。我只想在用户角色与uid匹配的位置同步公司数据 我像这样连接到firestore: firestoreConnect( props => [ { collection : 'company_roles', where: [["user_id", "==", props.au
firestoreConnect( props => [
{ collection : 'company_roles', where: [["user_id", "==", props.auth.uid]] }
{ collection : 'company' },
])
const mapStateToProps = (state) => {
return {
auth: state.firebase.auth,
company_data : state.firestore.ordered.company,
company_roles : state.firestore.ordered.company_roles,
}
}
并将状态映射到道具,如下所示:
这会将与uid匹配的角色作为一个对象的数组[{}]返回。现在,当我尝试基于user_角色返回company时,它返回undefined。我是这样做的:
{ collection : 'company', where: [["company_name", "==", props.company_roles.uid]] },
我被卡住了。做什么或者有更好的方法吗?实际上,通常的做法是将用户数据存储在名为“用户”的Firestore集合中,其中每个用户文档都是根据用户UID命名的。 查看Javascript示例:
db.collection(“users”).doc(user.uid).get()。然后((快照)=>{
如果(文件存在){
log(“文档数据:”,doc.data());
}否则{
//在这种情况下,将不定义doc.data()
log(“没有这样的文档!”);
}
}).catch((错误)=>{
log(“获取文档时出错:”,错误);
});
您可以在此处阅读更多信息:
只需确保您也熟悉Firestores
如果您需要粒度控制,上述方法是理想的,但是为了更广泛的目的,您可以实现。但是,这确实需要和服务器环境来运行,这很可能需要Blaze计划