2017-04-05 1 views
0

Ich versuche, Daten mit einem dynamischen, zwingend erforderlich firebase-document Element in einem benutzerdefinierten Verhalten abzurufen.Polymer 1.x: So rufen Sie Daten mit Firebase-Dokument in einem benutzerdefinierten Verhalten zwingend ab

Ich habe den folgenden Code. Beachten Sie, dass die erste console.log korrekt wie erwartet protokolliert. Aber die Sekunde protokolliert nie etwas. Wo gehe ich falsch?

my-behavior.html
<link rel="import" href="../../bower_components/polymer/polymer.html"> 
<link rel="import" href="../../bower_components/polymerfire/polymerfire.html"> 
... 
getUserLocalSeries: function(uid) { 
    var doc = document.createElement('firebase-document'); 
    var path = ['users', uid, 'local'].join('/'); 
    doc.appName = 'app'; 
    doc.path = path; 
    var _this = this; 
    console.log('path', path); // Logs fine 
    doc.addEventListener('response', function(e) { 
    console.log('doc', doc.lastResponse); // Doesn't log 
    _this.set('userLocalSeries', doc.lastResponse); 
    }); 
    this.set('userLocalSeries', doc.data); 
}, 

Antwort

3

würde ich empfehlen, die Firebase JS SDK für diese Stelle nur mit:

getUserLocalSeries: function(uid) { 
    var path = ['users', uid, 'local'].join('/'); 
    var _this = this; 
    firebase.database().ref(path).on('value', function(snap) { 
    _this.set('userLocalSeries', snap.val()); 
    }); 
} 

Sie das SDK so lange, wie Sie eine firebase-app haben können in Ihrem Projekt. In diesem Beispiel müssen Sie das name-Attribut von firebase-app weglassen, aber Sie könnten auch z. firebase.app('app').database().ref() stattdessen.

+0

Weitere Pluspunkte für die Aufnahme eines Beispiels mit dem Attribut 'name'. – Mowzer

Verwandte Themen