Vue.js无法检查用户是否在计算属性中签名

时间:2019-11-13 14:52:47

标签: javascript firebase vue.js firebase-authentication

我想检查用户是否已在Firebase中登录,但是无法在计算属性中进行登录。

我要做的是根据用户是否登录显示表单。

    <v-form
      ref="form"
      v-if="isSignedIn"
      v-model="valid"
      lazy-validation>
    ...

     computed: {
      isSignedIn() {
        firebase.auth().onAuthStateChanged((user) => {
          if (user) {
              return true
          } else {
              return false
          }
       })
     },

即使我使用观察者,该属性仍然是undefined

但是,这种方式有效。 (我检查了用户是否已登录方法,并将结果分配给变量。)

<v-form
  ref="form"
  v-if="flag"
  v-model="valid"
  lazy-validation>
...

methods: {
    isSignedIn() {
        firebase.auth().onAuthStateChanged((user) => {
          if (user) {
              this.flag = true
          } else {
              this.flag = false
          }
       })    
    }
},
mounted() {
    this.isSignedIn()
}

第一种方式有什么问题?

1 个答案:

答案 0 :(得分:1)

如果没有有关Vue.js组件代码的更多详细信息,很难为您提供帮助。

但是,请注意documentation解释了这一点:

  

获取当前用户的推荐方法是设置观察者   在Auth对象上

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