Используйте Firebase-запрос для получения данных из массива идентификаторов

Я пытаюсь использовать firebase-запрос Polymerfire, чтобы получить список дочерних элементов для каждого идентификатора в массиве. У меня есть и массив с тремя идентификаторами и Firebase-запрос, который выглядит следующим образом:

<firebase-query id="teamContacts"
                path= "{{teamConPath}}"
                data="{{teamConData}}"></firebase-query>

и пара наблюдателей, которые выглядят так:

teamConData: {
  observer: '_teamConDataChanged'
},
teamConPath: {
  value: '',
  observer: '_teamConPathChanged'
},

_teamConPathChanged: function(newValue, oldValue) {
  var self = this;
  if (!app.isEmpty(newValue)) {
    this.$.teamContacts.getStoredValue(newValue).then((response) => {
      // self.teamConData = value;
      console.log('in the gsv then');
    });
    console.log('teamConData: ', this.teamConData);
  }
},
_teamConDataChanged: function(newValue, oldValue) {
  console.log('teamConChanged', newValue);
},

Изначально путь к teamContacts нулевой. После того, как я установил путь, я не понимаю, как получить и работать с данными. Документация Firebase показывает метод под названием getStoredValue() но этот метод, по-видимому, отсутствует в источнике запросов firebase на Github. Я думал, что установка нового пути приведет к получению данных и вызовет наблюдателя для данных, но это не так. Как я могу заставить запрос firebase повторно запросить с новым путем и затем асинхронно работать с данными?

2 ответа

Я вообще не знаю, что такое firebase, но быстрый взгляд на документы показывает, что он обещает получить ценность. Так что в тот момент, когда вы console.log teamConData еще не разрешен (то есть не получил данные). Где вы добавили комментарий //self.teamConData где запрос должен был заполнить teamData. Поскольку вы используете функции стрелки ES6, this значение должно быть правильным - так this.teamConData должен иметь данные в этом пункте.

Как teamConData это объект, который я создам как наблюдатель

observers: ['_teamConDataObserver(teamConData.*)'],
_teamConDataObserver: function(changedData) {
    // do something with the data
}

Я рекомендую вам взглянуть на этот поликаст, он может быть полезен https://youtu.be/m1hFhDYDY6o?t=4m35s

Другие вопросы по тегам