我目前正在尝试使用EmberFire从FireStore获取数据。现在,我的集合是/users,其中存储了一个用户ID,在这个用户ID下,我创建了另一个子集合,其中包含一个名为/presets的数组。
我想使用EmberFire来检索当前登录用户的预设。我怎么才能告诉EmberFire呢?
我尝试使用EmberFire获取其他数据,它工作得很好。例如,从集合中获取文档工作得非常好,只是我从来没有使用子集合。这就是问题所在。
我想要实现的东西是
this.store.query('/users/pLvAT0TSbAjsnXoVmMF7yEG3mkW2/presets')获取存储在(集合用户) -> (document pLvAT0TSbAjsnXoVmMF7yEG3mkW2) -> (集合预设)中的数据。
当然,我希望使用传统的工作流程将预设中的文档转换为视图。
现在,我只能处理单个集合。嵌套集合不是我能够使用的东西。
有没有人有办法解决这个问题?
发布于 2019-07-15 00:35:26
一般的答案是:
this.store.find('users', 'pLvAT0TSbAjsnXoVmMF7yEG3mkW2').then((user)=>{
return user.get('presets');
})但它假设一些事情是“Ember的方式”完成的:
User模型Preset模型hasMany关系:<代码>H212<代码>G213// 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)不能很好地使用子集合,但您可以获取记录,但不能创建或更新记录。
资料来源:
https://stackoverflow.com/questions/56606074
复制相似问题