如何在Vue中设置身份验证状态更改?

时间:2020-09-15 17:01:12

标签: firebase vue.js vuejs2 firebase-authentication vuex

登录后,我要设置用户登录的状态。在哪里输入此代码? 我还具有一个带有Hello,登录功能的菜单组件。我想将其更改为Hello {{user.email}},在用户登录后退出。

 firebase.auth().onAuthStateChanged(function(user) {
  if (user) {
    // User is signed in.
  } else {
    // No user is signed in.
  }
});
 

1 个答案:

答案 0 :(得分:0)

在main.js中

let app = '';

firebase.auth().onAuthStateChanged(() => {
  if(!app) {
    app = new Vue({
      router,
      store: store,
      render: h => h(App)
    }).$mount('#app')
  }
})

帮助您的组件

<template>

  <div>
    <span v-if="user">Hello {{user.email}}</span>
  </div>

</template>

<script>
 
  import firebase from 'firebase'

  export default {
    data: function() {
      return {
        user: null,
      }
    },
    beforeMount(){
      this.getUser()
    },
    methods: {
      getUser: function() {
        if(firebase.auth().currentUser) {
          this.user = firebase.auth().currentUser.uid
        }
        else {
          this.user = null
        }
      }
    }
  }
</script>