2016-07-26 12 views
0

Ich bin ein wenig stecken, versucht, Daten auf Abruf zu einer Firebase-Datenbank mit dem Polymerfire-Polymer-Element zu pushen. Ich habe eine Datenbindung in einem DOM-Element und es funktioniert einwandfrei für Register, die bereits vorhanden sind. Meine wirkliche Frage ist, wie man neue Register mit einzigartiger Identifikation schafft?Push-Daten zu Firebase über Polymerfire/Firebase-Abfrage-Element

//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> 

Wenn ich die Vorlage ändern Binden einen Eisen-Eingang und ein 2-Wege-Daten zu haben, dieses Update des Register an der Mühelosigkeit und kein Problem in Firebase.

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

Der eigentliche schwierige Teil ist, wie ein neues Objekt schieben (Nachricht) an Firebase mit einer eindeutigen ID, so etwas wie "lasdjlkadj1978kld"?

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

Ich habe versucht, das „Daten“ Objekt über JS modernisiert werden, aber es ist nur lokal geändert ...

Antwort

4

Ich bin nicht sicher, ich verstehe Ihre Frage richtig.

Wie erstellt man neue Register mit eindeutiger ID?

Sie können firebase-document verwenden, die save Verfahren bereitzustellen, das zwei Argumente parentPath und Schlüssel nehmen (lassen Sie die Taste).

<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> 

hatte ich versucht, die "Daten" Objekt über js modernisiert werden, aber es ist nur lokal geändert ...

Wie Sie die data aktualisieren, haben Sie verwendet this.set?

+0

ich bin mir nicht sicher, wie man das Firebase-Dokument-Element verwendet, die Dokumentation gibt nicht viel zu arbeiten, können Sie ein Beispiel teilen? – RoO

+0

Ich denke, dass [Codelab] (https://codelabs.developers.google.com/codelabs/polymer-firebase-pwa/index.html?index=..%2F..%2Findex#0) ein guter ist start (und siehe [Verhalten] (https://github.com/PolymerLabs/note-app/blob/master/common/note-app/na-behavior.html)). Ich aktualisiere bereits meine Antwort hoffe diese Hilfe. –

+0

Super !!! 'this. $. document.save (path) .then' funktioniert wie erwartet .... danke ... – RoO

Verwandte Themen