我有点卡住了,试图将数据按需推送到Firebase数据库中,使用聚合聚合物元素。我在DOM元素中有一个数据绑定,对于已经存在的寄存器,它可以完美地工作。我真正的问题是如何用唯一的id创建新的寄存器?
//firebase query for a specific path and a data binding
<firebase-query
id="query"
app-name="testApp"
path="/[[uid]]/messages"
data="{{data}}">
</firebase-query>
//dom repeat for each item inside the data binding
<template is="dom-repeat" items="{{data}}">
<div class="card">
<p>[[item.text]]</p>
</div>
</template>如果我修改模板有一个铁输入和一个双向数据绑定,这个更新寄存器轻松,没有问题,在Firebase。
<template is="dom-repeat" items="{{data}}">
<div class="card">
<input is="iron-input" bind-value="{{item.text}}">
</div>
</template>真正棘手的部分是如何使用唯一的id将新对象(消息)推送到Firebase,类似于"lasdjlkadj1978kld"
//firebase estructure
{
"uid" : {
"messages" : {
"message1" : {
"message" : "some text",
"timestamp" : "some date"
},
"message2" : {
"message" : "some text",
"timestamp" : "some date"
}
...
...
}
}
}我试过通过JS更新“数据”对象,但它仅在本地修改.
发布于 2016-07-26 16:18:45
我不确定我是否理解你的问题。
如何用唯一的id创建新的寄存器?
您可以使用firebase-document来提供带有两个参数的save方法-- parentPath和key (只需保留键)。
<firebase-document id='document'
data='{{data}}'>
</firebase-document>
<script>
Polymer({
saveMessage: function () {
// path = /<uid>/messages in your case
this.$.document.save(path).then(function () {
// after document saved, path will be changed to the new ref
// any change of data will sent back up and stored
});
}
});
</script>我试过通过js更新“数据”对象,但它仅在本地修改.
您是如何更新data的,是否使用了this.set?
https://stackoverflow.com/questions/38592949
复制相似问题