我尝试使用Polymerfire的firebase-query来检索数组中每个ID的子列表。我有三个ID和一个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()
的方法,但该方法似乎不存在于Github上的firebase-query源中。我认为设置一个新路径会获取数据并触发数据的观察者,但似乎并非如此。如何使用新路径重新查询firebase-query,然后异步处理数据?
答案 0 :(得分:0)
我根本不了解firebase,但快速浏览文档意味着它会带来获得价值的承诺。所以,在你console.log
teamConData的时候,它还没有解决(即没有取得数据)。您添加注释的位置//self.teamConData
是查询应填充teamData的位置。当您使用ES6箭头函数时,this
值应该是正确的 - 因此this.teamConData
应该包含该数据。
答案 1 :(得分:0)
作为teamConData
,我将创建一个像
observers: ['_teamConDataObserver(teamConData.*)'],
_teamConDataObserver: function(changedData) {
// do something with the data
}
我会建议你看一下这个polycast,它可能会有所帮助https://youtu.be/m1hFhDYDY6o?t=4m35s