如何使用 react-redux-firebase 将 'auth' 或 'profile' 对象传递给 firestoreConnect()?

Posted

技术标签:

【中文标题】如何使用 react-redux-firebase 将 \'auth\' 或 \'profile\' 对象传递给 firestoreConnect()?【英文标题】:how to pass 'auth' or 'profile' object to firestoreConnect() with react-redux-firebase?如何使用 react-redux-firebase 将 'auth' 或 'profile' 对象传递给 firestoreConnect()? 【发布时间】:2019-06-23 20:11:08 【问题描述】:

我不知道如何将“profile”或“auth”道具传递给 firestoreConnect() 函数,以便根据用户 ID 或其他键查询集合或文档(我的代码 sn-p 在下面)。

我可以在我的 jsx 代码中访问 'auth' 和 'profile' 对象,但我找不到在 firestoreConnect() 函数中使用它们的方法(我收到一个错误:TypeError: Cannot read property 'uid' of undefined)。如果我对一些 uid 进行硬编码,那么一切正常,但我不能将其作为 props 值传递。

任何建议都非常感谢!

export default compose(
  firebaseConnect(),
  firestoreConnect(props => [ collection: 'projects', where: [['uid', '==', props.auth.uid]] ]), <<--THIS LINE DOES NOT WORK
  connect((state, props) => (
    projects: state.firestore.ordered.projects,
    profile: state.firebase.profile,
    auth: state.firebase.auth,
  ))
)(Projects);

【问题讨论】:

【参考方案1】:

不确定为什么您的代码不起作用(它对我有用)。您是否尝试过 firestoreConnect 中的控制台日志记录道具?像这样:

export default compose(
    firebaseConnect(),
    firestoreConnect(props => 
        console.log(props)
        return [
             collection: 'projects', where: [['uid', '==', props.auth.uid]] 
        ]
    ), 
    connect((state, props) => (
        projects: state.firestore.ordered.projects,
        profile: state.firebase.profile,
        auth: state.firebase.auth,
    ))
)(Projects);

也许这可以让你走上正轨。

希望你解决它!

【讨论】:

我认为您需要将连接放在 firestoreConnect 之前。所以firebaseConnect,connect,firestoreConnect.【参考方案2】:

您可能已经解决了这个问题,但如果其他人遇到这个问题,请在此处发布。 你需要在 firestoreConnect 之前移动你的连接方法,所以是这样的:

export default compose(
  firebaseConnect(),
  connect((state, props) => (
    projects: state.firestore.ordered.projects,
    profile: state.firebase.profile,
    auth: state.firebase.auth,
  )),
  firestoreConnect(props => [ collection: 'projects', where: [['uid', '==', props.auth.uid]] ]), <<--THIS LINE DOES NOT WORK
)(Projects);

【讨论】:

以上是关于如何使用 react-redux-firebase 将 'auth' 或 'profile' 对象传递给 firestoreConnect()?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用本机反应创建登录以及如何验证会话

如何在自动布局中使用约束标识符以及如何使用标识符更改约束? [迅速]

如何使用 AngularJS 的 ng-model 创建一个数组以及如何使用 jquery 提交?

如何使用laravel保存所有行数据每个行名或相等

如何使用 Math.Net 连接矩阵。如何使用 Math.Net 调用特定的行或列?

WSARecv 如何使用 lpOverlapped?如何手动发出事件信号?