Получение Firebase doc.data не определено - PullRequest
0 голосов
/ 01 декабря 2019

Я пытаюсь получить данные из моей коллекции Firebase. Когда я утешу. имя doc.data (). это возвращает имя, но когда я пытаюсь присвоить имя переменной doc.data (). это показывает мне ошибку undefined. Я использую Vuex и Firebase.

created() {
    firebase.auth().onAuthStateChanged(function(user) {
      if (user) {
        console.log(user.uid);
        firebase.firestore().collection("profiles").doc(user.uid)
          .get()
          .then(function(doc) {
            console.log("Document data:", doc.data().name);  // Getting value from firebase
            this.profile.name = doc.data().name;   // Getting Undefined Here
          })
          .catch(function(error) {
            console.log("Error getting document:", error);
          });
      } else {

      }
    });
  }


data() {
    return {
        profile: {
            name: null
        }
    };
  },

1 Ответ

1 голос
/ 01 декабря 2019

Изменить это:

          .then(function(doc) {
            console.log("Document data:", doc.data().name);  // Getting value from firebase
            this.profile.name = doc.data().name;   // Getting Undefined Here
          })

На это:

          .then((doc) => {
            console.log("Document data:", doc.data().name);  // Getting value from firebase
            this.profile.name = doc.data().name;   // Getting Undefined Here
          })

Использовать функцию стрелки из документов:

Функция стрелки не имеетсвое это. Используется значение this лексической области видимости;Функции стрелок следуют нормальным правилам поиска переменных. Таким образом, при поиске этого, которого нет в текущей области видимости, функция стрелки заканчивает тем, что находила this из включенной области видимости

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...