2017-08-07 8 views
1

Ich versuche, die Firebase-Referenz basierend auf der ID der URL dynamisch festzulegen. Ich benutze Vue und VueFire. Hier ist mein Code:Firebase-Referenz von Route ID

<template> 
    <v-container> 
    <h4>name: {{anObject.name}}</h4> 
    </v-container> 
</template> 

<script> 
    import Vue from 'vue' 
    import db from '@/js/firebase.js' 

    export default { 
    props: ['id'], 
    firebase: { 
     anObject: { 
     source: db.ref(this.getPath), 
     //source: db.ref('path/id'), 
     asObject: true, 
     cancelCallback: function() {console.log("Cancel")}, 
     readyCallback: function() {console.log("Ready")} 
    }, 
    computed: { 
    getPath() { 
     return 'path/' + this.id 
    } 
    } 
</script> 

Im Moment erzeugt das Objekt 'anObject' keine Daten (keine Fehler werden ausgelöst). Wenn ich den Pfad fest programmiere (der Code ist momentan auskommentiert) funktioniert alles wie erwartet. Ich nehme an, das Problem hängt damit zusammen, dass die ID-Eigenschaft zum Zeitpunkt der Erstellung des 'anObject' keinen Wert hat. Wenn ja, kann ich die Referenz in einem Lebenszyklus-Hook aktualisieren?

Antwort

2

OK Ich fand die Antwort here. Grundsätzlich musste ich auf den erstellten Hook warten und dann den Verweis definieren (merke ihn nirgendwo anders zu definieren!).

created() { 
    this.$bindAsObject('anObject', db.ref('path/' + this.$route.params.id)) 
    }, 
Verwandte Themen