Как получить информацию о пользователе в части данных в vue.js?

Вы случайно не знаете, как настроить пользователя для currentUser? Я использую vuefire и firebase. User.uid возвращает неопределенное значение.

 <td v-if="(building['key'] && building['key'].child('ownerId')) == user.uid">
            <p >{{building['.key']}} + {{user.uid}}</p>
</td>

это остальная часть моего кода:

import firebase,{ db, usersRef, buildingsRef } from '../firebase-config';
import { store } from '../store/store';

export default {

  firebase() { 
    // from my understanding this just gives me a quick access to the Refs and a short nomenclature
    return { 
    users: usersRef,  
    buildings: buildingsRef, 
    }
  },
  name: 'buildings',
  data () {
    return {
      user: "",
      building: {
        name: '',
        address: '',
        comments: '',
        ownerId: '',
      },
    }
  },

Я пытаюсь сделать это через магазин в хуке beforeCreate:

  beforeCreate () {
       this.$store.dispatch('setUser');
       let user = this.$store.getters.getUser;
       console.log(user); // this works!!!
      this.$set(this.user, 'uid', user.uid )
  }   
},

Если вместо этого я установлю пользователя в create hook следующим образом:

  created () {
       this.$store.dispatch('setUser');
       let user = this.$store.getters.getUser;
       console.log(user); // this works!!!
      this.$set(this.user, 'uid', user.uid )
    } 

Я получаю эту ошибку:

1 ответ

Решение

В Ву, государство (ака data свойства) инициализируется между beforeCreate а также created крючки.

Так что любое изменение, которое вы делаете для data в beforeCreate потерян

Измените свой крючок на created

created() {                         // changed this line
  this.$store.dispatch('setUser');
  let user = this.$store.getters.getUser;
  console.log(user); // this works!!!
  this.$set(this.user, 'uid', user.uid)
}
Другие вопросы по тегам