我目前正在尝试使用EmberFire从FireStore提取数据。现在,我的收藏是/ users,我在那里存储了一个用户ID。在用户ID下,我创建另一个子集合,其中包含一个名为/ presets的数组。
我想使用EmberFire检索当前登录用户的预设。我该如何告诉EmberFire?
我尝试使用EmberFire获取其他数据,但效果很好。例如,从一个集合中获取文档可以很好地工作,我只是从未使用过子集合。因此是问题。
我想实现的目标是
this.store.query('/users/pLvAT0TSbAjsnXoVmMF7yEG3mkW2/presets')
获取(收集用户)->(文档pLvAT0TSbAjsnXoVmMF7yEG3mkW2)->(收集预设)中存储的数据。
我当然想使用传统的工作流程将预设中的文档转换为视图。
现在,我只能处理一个集合。我无法使用嵌套集合。
有人对如何解决这个问题有想法吗?
答案 0 :(得分:0)
一般的答案是:
this.store.find('users', 'pLvAT0TSbAjsnXoVmMF7yEG3mkW2').then((user)=>{
return user.get('presets');
})
但是它假设某些事情是通过“灰烬之路”完成的:
User
模型Preset
模型hasMany
和User
之间存在Preset
关系,如下所示:// app/models/user.js
import DS from 'ember-data';
const { Model, attr, hasMany } = DS;
export default Model.extend({
presets: hasMany('preset', { subcollection: true })
});
尽管当前版本的Emberfire(v3-rc2)不能与Subcollections很好地配合,但是您可以获取记录,但不能创建或更新记录。
来源: