Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何访问firebase道具';方法中的值(Vuefire)?_Javascript_Firebase_Vue.js_Firebase Realtime Database_Vuefire - Fatal编程技术网

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()
      }
    }
  }
}