Получение "undefined" в "this" внутри firestore в vuefire - PullRequest
0 голосов
/ 16 мая 2019

Я использую firebase-auth и firebase-firestore в своем приложении Vue с vuefire для извлечения пользовательских данных из firestore.

Итак, в моем случае:

data() {
  return {
      user: firebase.auth().currentUser
  }
},
firestore: {
  userData: db.collection("users").where("uid", "==", this.user.uid)
}

Но когда код выполняется, «this», которое должно быть экземпляром Vue, не определено.Как я могу решить это?

Ответы [ 2 ]

1 голос
/ 16 мая 2019

Вы не можете немедленно отреагировать на магазин. В то время нет гарантии, что экземпляр firebase был создан и вы можете его использовать.

data() {
  user: {},
  userData: {}
},

Теперь вы можете вернуть таких же свойств из вашего пожарного магазина:

firestore () {
  return {
    user: firebase.auth().currentUser,
    userData: db.collection("users").where("uid", "==", firebase.auth().currentUser.id)
  }
}

Обратите внимание, что в приведенном выше ^ вы не можете использовать this.user.id, поскольку user, возможно, не было написано до того, как вы попытаетесь получить к нему доступ. Но вы можете использовать firebase.auth().currentUser.id

1 голос
/ 16 мая 2019

Вы должны вернуть свои данные, например:

data() {
    return {
      user: firebase.auth().currentUser
   }
}
...