reactjs - 如何使用react-redux-firebase从firestore获取子集合

标签 reactjs firebase react-redux google-cloud-firestore react-redux-firebase

我无法从 Firestore 数据中获取子集合。

我遵循了文档here 。并且还查看了许多其他类似的问题。

我似乎无法获取我想要获取的数据数组。

我的代码:

import "../../styles/projects/ProjectDashboard.css";
import ProjectList from "./ProjectList";
import { connect } from "react-redux";
import { firestoreConnect } from "react-redux-firebase";
import { compose } from "redux";
import { Redirect } from "react-router-dom";

export class ProjectDashboard extends Component {
  render() {
    const { projects, auth } = this.props;
    if (!auth.uid) return <Redirect to="/sigin" />;
    return (
      <div className="container">
        <h2>Projects</h2>
        <ProjectList projects={projects} />
      </div>
    );
  }
}

const mapStateToProps = state => {
  console.log(state);
  return {
    projects: state.firestore.ordered.projects,
    auth: state.firebase.auth
  };
};

export default compose(
  connect(mapStateToProps),
  firestoreConnect(props => {
    return [
      {
        collection: "users",
        doc: props.auth.uid,
        subcollection: [{ collection: "projects" }]
      }
    ];
  })
)(ProjectDashboard);

这是我现在从控制台得到的:

firestore:
|-composite: undefined
|-data: {users: {…}}
|-errors: {byQuery: {…}, allIds: Array(0)}
|-listeners: {byId: {…}, allIds: Array(1)}
|-ordered:
|--users: Array(1)
|---0: {id: "o06VEyRbGDcURTmKal3gDEDZQO73", firstName: "testing", lastName: "you", userId: "o06VEyRbGDcURTmKal3gDEDZQO73"}
|---length: 1
|---__proto__: Array(0)
|--__proto__: Object
|-queries: {}
|-status: {requesting: {…}, requested: {…}, timestamps: {…}}
|-__proto__: Object

我想我的代码会改变这部分:

|-ordered:
|--users: Array(1)
|---0: {id: "o06VEyRbGDcURTmKal3gDEDZQO73", firstName: "testing", lastName: "you", userId: "o06VEyRbGDcURTmKal3gDEDZQO73"}

像这样:

|-ordered:
|--projects: Array(3)
|---0: {id: "o06VEyRbGDcURTmKal3gDEDZQO73", firstName: "testing", lastName: "you", userId: "o06VEyRbGDcURTmKal3gDEDZQO73"}
|---1: {id: "o06VEyRbGDcURTmKal3gDEDZQO73", firstName: "testing", lastName: "you", userId: "o06VEyRbGDcURTmKal3gDEDZQO73"}
|---2: {id: "o06VEyRbGDcURTmKal3gDEDZQO73", firstName: "testing", lastName: "you", userId: "o06VEyRbGDcURTmKal3gDEDZQO73"}

这样我就可以通过 key 获取数组。但现在我不知道如何将其更改为我的子集合 key 。

最佳答案

我意识到它应该是“子集合”而不是“子集合”

关于reactjs - 如何使用react-redux-firebase从firestore获取子集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56209041/

相关文章:

javascript - React 中的组件相互重叠

reactjs - react router v4 以编程方式改变路线

firebase - 无崩溃统计监视器在 Flutter 中的 Firebase Crashlytics 中不起作用

javascript - 如何在 Cloud Functions for Firebase 上使用 Express 执行 HTTP 文件上传(multer、busboy)

javascript - 图片未在 Firebase 中保存名称

react-native - 如何在 react 原生 redux 中显示和隐藏事件指示符?

javascript - 在按钮上单击显示 react 表

css - 使用 CSS + React + Semantic UI 更改占位符颜色

javascript - 使用 React-Redux 时更新输入字段的状态

javascript - 如何传递类实例以在不破坏更新的情况下对子项使用react?