Javascript 如何访问firebase道具';方法中的值(Vuefire)?
在我的组件中,我正在做:Javascript 如何访问firebase道具';方法中的值(Vuefire)?,javascript,firebase,vue.js,firebase-realtime-database,vuefire,Javascript,Firebase,Vue.js,Firebase Realtime Database,Vuefire,在我的组件中,我正在做: firebase() { const userId = firebase.auth().currentUser.uid return { race: userRef.child(userId).child('races').child(this.raceKey) } }, mounted () { console.log(this.$firebaseRefs.race.name) } 我可以在我的组件的模板中访问race属性的值,但是我不知道如
firebase() {
const userId = firebase.auth().currentUser.uid
return {
race: userRef.child(userId).child('races').child(this.raceKey)
}
},
mounted () {
console.log(this.$firebaseRefs.race.name)
}
我可以在我的组件的模板中访问race属性的值,但是我不知道如何在创建的钩子或方法中访问它们。该值始终未定义。我该怎么做
比赛的结构是:
race: {
name: "the name",
.....
}
这是因为对Firebase实时数据库的查询是异步的,因此不能保证在生命周期挂钩(如
挂载的
)中获得查询结果。换句话说,在装入实例之前,race
对象的Firebase绑定不会完成
有关更多详细信息和可能的解决方法,请参阅以下文章:
使用readyCallBack函数解决了这个问题。问题是在firebase引用实际加载之前触发的。谢谢雷诺·塔内克的帮助
firebase() {
return {
race: {
source: userRef.child(firebase.auth().currentUser.uid).child('races').child("-LMgzo_50TzlfJwCblDS"),
asObject: true,
cancelCallback: function () {},
readyCallback: function() {
console.log("Firebase race was loaded")
this.renderMap()
}
}
}
}