2016-07-26 88 views
0

我有點卡住,試圖使用聚合物火力聚合物元素將數據按需推送到Firebase數據庫。我在DOM元素內部有一個數據綁定,它對於已經存在的寄存器來說是完美無瑕的。我真正的問題是如何創建具有唯一ID的新寄存器?通過聚合火力/火力點查詢元素將數據推送到Firebase

​​

如果我修改的模板有一個鐵的輸入和2個數據綁定,此更新放心的寄存器和火力地堡沒有問題。

<template is="dom-repeat" items="{{data}}"> 
    <div class="card"> 
     <input is="iron-input" bind-value="{{item.text}}"> 
    </div> 
</template> 

真正棘手的部分是如何把一個新的對象(消息)火力地堡一個唯一的ID,像"lasdjlkadj1978kld"

//firebase estructure 
{ 
    "uid" : { 
     "messages" : { 
     "message1" : { 
      "message" : "some text", 
      "timestamp" : "some date" 
     }, 
     "message2" : { 
      "message" : "some text", 
      "timestamp" : "some date" 
     } 
     ... 
     ... 
     } 
    } 
} 

我試圖通過更新JS,但其僅在本地修改的「數據」對象......

回答

4

我不知道我正確理解你的問題。

如何創建具有唯一ID的新寄存器?

您可以使用firebase-document提供save方法需要2個參數parentPath和密鑰(剛剛離開的關鍵)。

<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

+0

即時通訊不知道如何使用firebase-document元素,文檔並沒有多大用處,你能分享一個例子嗎? – RoO

+0

我認爲這[codelab](https://codelabs.developers.google.com/codelabs/polymer-firebase-pwa/index.html?index=..%2F..%2Findex#0)是一個很好的開始(並參見他們的[行爲](https://github.com/PolymerLabs/note-app/blob/master/common/note-app/na-behavior.html))。我已經更新了我的答案,希望有所幫助。 –

+0

太棒了! '。這個。$。document.save(path).then'就像預期的那樣工作....謝謝... – RoO