Polymer:firebase-collection总是返回空数组

时间:2015-11-08 21:49:43

标签: javascript firebase polymer firebase-polymer

我尝试使用firebase-collection,但无论我尝试什么,我总是收到一个空数组(在firebase中我有几个条目)

strings.xml

<dom-module id="bar-foo"> <template> <firebase-collection id="barFoo" location="https://bar-foo.firebaseio.com/items" data="{{items}}"></firebase-collection> <firebase-document location="https://bar-foo.firebaseio.com/item" data="{{item}}"></firebase-document> </template> <script> class BarFoo { beforeRegister() { this.is = 'bar-foo'; this.properties = { items: { notify: true, observer: 'updated', type: Array } } } updated(newList) { // newList === this.items === [] ... } } Polymer(BarFoo); </script> </dom-module> 元素有效!有什么建议我收到一个空列表?

此外,当我手动将新项目添加到firebase-collection时,我在控制台中获得以下内容

firebase-document

火焰基地没有任何事情发生:(

1 个答案:

答案 0 :(得分:1)

不要使用观察员。当我玩的时候,我发现观察者只会发射一次:第一次加载时。我无法告诉你原因。

幸运的是,firebase-collection在数据更改时触发事件:https://github.com/GoogleWebComponents/firebase-element/issues/86

添加事件侦听器而不是属性观察器:

this.listeners = {
  'barFoo.firebase-value': 'updated'
}

PolymerLabs的这个例子使用事件监听器而不是观察者: https://github.com/PolymerLabs/todo-list/blob/master/app/elements/todo-data/todo-data.html

希望这会有所帮助,并且我会继续寻找关于firebase-collection的观察者行为的一些解释。