我想检查用户是否已在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()
}
第一种方式有什么问题?
答案 0 :(得分:1)
如果没有有关Vue.js组件代码的更多详细信息,很难为您提供帮助。
但是,请注意documentation解释了这一点:
获取当前用户的推荐方法是设置观察者 在Auth对象上
firebase.auth().onAuthStateChanged(function(user) { if (user) { // User is signed in. } else { // No user is signed in. } });