首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >查询用户特定数据(包括population)在一个组合方法中使用react-redux-firebase

查询用户特定数据(包括population)在一个组合方法中使用react-redux-firebase
EN

Stack Overflow用户
提问于 2018-01-11 09:18:26
回答 1查看 379关注 0票数 1

我正在使用react-native,但在使用firebaseConnect加载特定于用户的数据时遇到了问题。假设有很多todosusersdoers,但不想引用它们的所有元素。

首先,我在实时数据库中的数据结构的快捷方式:

代码语言:javascript
复制
- todos
  |- cleanRoom
  |    |- createdBy: alica
  |    |- title: "Clean the room up"
  |    |- doerList
  |        |- roomCleanerMichael
  |        |- roomCleanerAlica
  |- playBall
       |- createdBy: michael
       |- title: "Play the ball"
       |- doerList
           |- ballPlayerAlica

- users
  |- michael
  |    |- name: Michael
  |    |- age: 22
  |- alica
       |- name: Alica
       |- age: 27

- doers
  |- roomCleanerMichael
  |    |- user: michael
  |    |- status: done
  |- roomCleanerAlica
  |    |- user: alica
  |    |- status: done
  |- ballPlayerAlica
       |- user: alica
       |- status: done

我在RN中有一个视图/屏幕,其中应该显示所有信息。现在,我有..。

代码语言:javascript
复制
const populatesTodoCreator = [{child: 'createdBy', root: 'users'}]

const mapStateToProps = (state, props) => {
  return {
    todos: populate(state.firebase, 'todos', populatesTodoCreator),
    uid: state.firebase.auth.uid
  }
}

export default compose(
  firebaseConnect((props, store) => {
      return [
        {path: 'todos', populatesTodoCreator},
      ]
    }
  ),
  connect(mapStateToProps, mapDispatchToProps)
)(TodoOverviewScreen)

当我使用firebase.auth.uid = michael登录应用程序时,我只想引用todos的列表,其中michaeldoer的身份参与,并填充doersList中的所有doers (包括特定doer中的user ),所有这些都只在一个compose方法中。

因此,生成的redux状态应该如下所示,因为michael只是cleanRoom的doer

代码语言:javascript
复制
- todos
  |- cleanRoom
      |- createdBy
      |    |- name: Alica
      |    |- age: 27
      |- title: "Clean the room up"
      |- doerList
           |- roomCleanerMichael
           |     |- user
           |     |    |- name: Michael
           |     |    |- age: 22
           |     |- status: done
           |- roomCleanerAlica
                 |- user
                 |    |- name: Alica
                 |    |- age: 27
                 |- status: done

这项任务可行吗?如果是,我该如何完成此任务?有什么结构上的建议吗?

EN

回答 1

Stack Overflow用户

发布于 2018-01-11 20:44:02

填充像doerList这样的列表是由另一个填充参数完成的。

将填充数组更改为...

代码语言:javascript
复制
const populatesTodoCreator = [
  { child: 'createdBy', root: 'users' },
  { child: 'doerList', root: 'doers' } // populates the whole list of elements
]

对我很管用。

只查询登录用户参与的todos并在doer对象中填充user (以获得预期结果)是另一个问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48198537

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档