Как получить доступ к значениям firebase prop внутри метода (Vuefire)? - PullRequest
0 голосов
/ 19 сентября 2018

В моем компоненте я делаю:

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",
 .....
}

Ответы [ 2 ]

0 голосов
/ 20 сентября 2018

Решил, используя функцию readyCallBack.Проблема была смонтирована сработала еще до того, как ссылка на базу данных была загружена.Спасибо 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()
      }
    }
  }
}
0 голосов
/ 19 сентября 2018

Это связано с тем, что запросы к базе данных Firebase Real Time являются асинхронными, и, следовательно, нет никакой гарантии, что вы получите результат запроса в хуке жизненного цикла, таком как mounted.Другими словами, привязка Firebase вашего race объекта не завершается до монтирования экземпляра.

Подробнее о возможном обходном пути с readyCallback см. В следующих публикациях:

https://github.com/vuejs/vuefire/issues/70 и https://github.com/vuejs/vuefire/issues/69

...