使用Firebase查询从ID

时间:2016-10-09 07:06:22

标签: firebase polymer firebase-realtime-database firebase-polymer polymerfire

我尝试使用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,然后异步处理数据?

2 个答案:

答案 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