Use Firebase-query to get data from an array of ID's

[亡魂溺海] 提交于 2019-12-10 12:18:36

问题


I'm trying to use Polymerfire's firebase-query to retrieve a list of children for each ID in an array. I have and array with three ID's and a firebase-query that looks like:

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

and a couple observers that look like:

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);
},

Initially the path to teamContacts is null. After I set the path I don't understand how to get and work with the data. The Firebase documentation shows a method called getStoredValue() but that method doesn't seem to be present in the firebase-query source on Github. I thought setting a new path would fetch the data and trigger the observer for the data but that doesn't seem to be the case. How can I get the firebase-query to re-query with the new path and then asynchronously work with the data?


回答1:


I don't know firebase at all, but a quick look at the docs implies it returns a promise of getting the value. So at the point where you console.log teamConData it hasn't yet resolved (ie hasn't fetched the data). Where you added the comment //self.teamConData is where the query should have populated the teamData. As you are using ES6 arrow functions, the this value should be correct - so this.teamConData should have the data in it at that point.




回答2:


As teamConData it's an object I will create an observer like

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

I will recommend you to look at this polycast, it could be helpful https://youtu.be/m1hFhDYDY6o?t=4m35s



来源:https://stackoverflow.com/questions/39940946/use-firebase-query-to-get-data-from-an-array-of-ids

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!