我正在使用firebase-collection元素从Polymer应用程序中的Firebase存储库中获取对象数组。数据提取没有问题。现在我有了这些对象,如何在其中一个上更新子属性?
<firebase-collection
id="myfb"
location="https://dinosaur-facts.firebaseio.com/dinosaurs"
data="{{dinosaurs}}">
</firebase-collection>
<template is="dom-repeat" items="[[dinosaurs]]" as="dinosaur">
<h4>[[dinosaur.__firebaseKey__]]</h4>
Height: <span>[[dinosaur.height]]</span>
<iron-icon on-click="updateDino"></iron-icon>
</template>
...为简洁省略了聚合物样板...
updateDino: function(e) {
var key = e.model.dinosaur.__firebaseKey__;
// now what?
// tried this: e.model.dinosaur.height = 3.1415
// but firebase doesn't save the change.
// also tried various things with this.$.myfb.add but
// it always creates a new element
// where's the set() method on firebase-collection?
// something like this.$.myfb.set(key, updatedObj) would be handy.
}
答案 0 :(得分:0)
您可以使用firebase文档来更新数据,它可以映射到firebase上的某个位置,如下所示:
<firebase-document
location="https://dinosaur-facts.firebaseio.com/dinosaurs"
data="{{dinosaurs}}"></firebase-document>
A是对Firebase上某处的远程文档的引用。该元素在提供的位置获取文档,并将其公开为适合深度双向数据绑定的Object。
https://elements.polymer-project.org/elements/firebase-element?active=firebase-document
答案 1 :(得分:0)
Alan在评论中指出,这与firebase-collection合作:
e.model.set('dinosaur.height', 'new value to be set')
此外,items = [[dinosaurs]]的单向数据绑定已更改为双向绑定,如items = {{dinosaurs}}。我没想到这会影响firebase耦合,但它解决了这个问题。