这个函数将循环,每个循环key1和key2都会改变...问题是数据库结果是一个数组不会获得密钥的每个数据,它只会记录最后的数据。
GettingData: function(key1,key2){
var list=[];
console.log('Getting Data of '+key2);
var ref = firebase.database().ref('/users/'+key1+'/products/'+key2).orderByKey().equalTo('name');
ref.on('child_added', function(data) {
console.log(data.val());
list.unshift(data.val());
this.databaseresult = list;
console.log('Productdata of '+ key1 +' is LOADED');
console.log('pushing to array '+list);
console.log(this.databaseresult);
this.$.results.products = this.databaseresult;
}.bind(this));
},
答案 0 :(得分:0)
如果您希望通知任何观察者,请在更改属性时使用this.set('propertyName', value);
。此外,当您使用当前代码设置this.$.results.products = this.databaseresult;
时,即使使用Polymer.set方法也不会更新加号,您将不会是我认为您期望的数据绑定,因为这需要使用聚合物数据绑定语法IE {{ 1}}。至少据我所知,您可以手动强制它。通过调用<x-element products="{{databaseresult}}"></x-element>
事件。
this.fire('databaseresult-changed');