useFirestoreConnect 与填充 - usage/implementation
useFirestoreConnect with populates - usage/implementation
数据库设置:
- users
- A: { // private user info }
- usersPublic
- A: { // public user info }
- rooms
- 1: { readAccess: ['A'] }
我有一个显示所有 rooms
的组件,我正在通过以下方式获取它:
useFirestoreConnect(() => [{collection: 'rooms'}] )
这工作正常,但我现在还想为房间 readAccess
数组中的每个用户加载来自 usersPublic
的信息。
我正在尝试按以下方式使用 populates
:
useFirestoreConnect(() => [{
collection: 'rooms',
populates: [{
root: 'usersPublic',
child: 'A'
}]
}])
我很确定我对 populates
的实现是错误的,而且我无法准确理解如何使它起作用。
一旦我有了房间对象,我就可以return为所有具有读取权限的用户提供一堆其他查询配置,但这似乎效率低下,而且 populates
似乎正是为了解决这个问题.
我也乐于接受有关建模数据库结构的建议 - 上面的内容对我来说很有意义,并且在 private/public 用户信息之间提供了很好的分离,但可能有更好的方法。
方法是:
populates: [{ root: usersPublic, child: 'read_access ' }]
这导致 redux 状态如下所示:
...etc
data: {
rooms: { ... rooms ... }
usersPublic: { A: { ... usersPublic[A] ... }, etc }
}
数据库设置:
- users
- A: { // private user info }
- usersPublic
- A: { // public user info }
- rooms
- 1: { readAccess: ['A'] }
我有一个显示所有 rooms
的组件,我正在通过以下方式获取它:
useFirestoreConnect(() => [{collection: 'rooms'}] )
这工作正常,但我现在还想为房间 readAccess
数组中的每个用户加载来自 usersPublic
的信息。
我正在尝试按以下方式使用 populates
:
useFirestoreConnect(() => [{
collection: 'rooms',
populates: [{
root: 'usersPublic',
child: 'A'
}]
}])
我很确定我对 populates
的实现是错误的,而且我无法准确理解如何使它起作用。
一旦我有了房间对象,我就可以return为所有具有读取权限的用户提供一堆其他查询配置,但这似乎效率低下,而且 populates
似乎正是为了解决这个问题.
我也乐于接受有关建模数据库结构的建议 - 上面的内容对我来说很有意义,并且在 private/public 用户信息之间提供了很好的分离,但可能有更好的方法。
方法是:
populates: [{ root: usersPublic, child: 'read_access ' }]
这导致 redux 状态如下所示:
...etc
data: {
rooms: { ... rooms ... }
usersPublic: { A: { ... usersPublic[A] ... }, etc }
}