Как я могу запросить вложенную коллекцию в EmberFire? - PullRequest
0 голосов
/ 15 июня 2019

В настоящее время я пытаюсь получить данные из FireStore, используя EmberFire. Прямо сейчас моя коллекция - / users, и там я храню идентификатор пользователя. Под идентификатором пользователя я создаю еще одну вложенную коллекцию, содержащую массив с именем /presets.

Я хочу использовать EmberFire для получения предустановок для текущего пользователя. Как я могу сказать это EmberFire?

Я попытался получить другие данные, используя EmberFire, и он работал нормально. Например, выборка документов из коллекции работает отлично, я просто никогда не использовал вложенные коллекции. Отсюда вопрос.

То, что я хотел бы достичь, это что-то вроде

this.store.query('/users/pLvAT0TSbAjsnXoVmMF7yEG3mkW2/presets')

чтобы получить доступ к данным, хранящимся в (пользователях коллекции) -> (документ pLvAT0TSbAjsnXoVmMF7yEG3mkW2) -> (пресеты коллекции).

Конечно, я хотел бы затем использовать традиционный рабочий процесс, чтобы превратить документы в стилях в представления.

Сейчас я могу работать только с одной коллекцией. Вложенные коллекции - это не то, с чем я могу работать.

У кого-нибудь есть идеи, как решить эту проблему?

1 Ответ

0 голосов
/ 14 июля 2019

Общий ответ будет:

this.store.find('users', 'pLvAT0TSbAjsnXoVmMF7yEG3mkW2').then((user)=>{
  return user.get('presets');
})

Но это предполагает, что некоторые вещи сделаны "Тлеющим путем":

  1. Есть User модель
  2. Есть Preset модель
  3. Между User и Preset существует связь hasMany, например:
// 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) не очень хорошо работает с вложенными коллекциями, вы сможете получать записи, но не создавать и не обновлять их.

Источники:

  • Руководства Emberfire (сейчас вроде пусто, но, надеюсь, когда-нибудь у него будет хорошая информация)
...