如何在方法(Vuefire)中访问 firebase prop 的值?
How to access firebase prop's values inside a method (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: {
name: "the name",
.....
}
这是因为对 Firebase 实时数据库的查询是异步的,因此无法保证您在 mounted
这样的生命周期挂钩中获得查询结果。换句话说,您的 race
对象的 Firebase 绑定在安装实例之前没有完成。
有关 readyCallback 的更多详细信息和可能的解决方法,请参阅以下帖子:
https://github.com/vuejs/vuefire/issues/70 and https://github.com/vuejs/vuefire/issues/69
使用 readyCallBack 函数解决了它。问题是在 firebase 参考实际加载之前触发的。感谢 Renaud Tarnec 的帮助。
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()
}
}
}
}
在我的组件中,我正在做:
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: {
name: "the name",
.....
}
这是因为对 Firebase 实时数据库的查询是异步的,因此无法保证您在 mounted
这样的生命周期挂钩中获得查询结果。换句话说,您的 race
对象的 Firebase 绑定在安装实例之前没有完成。
有关 readyCallback 的更多详细信息和可能的解决方法,请参阅以下帖子:
https://github.com/vuejs/vuefire/issues/70 and https://github.com/vuejs/vuefire/issues/69
使用 readyCallBack 函数解决了它。问题是在 firebase 参考实际加载之前触发的。感谢 Renaud Tarnec 的帮助。
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()
}
}
}
}