Используйте 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