Javascript VueJS+;Firebase身份验证可以';在加载脚本之前不能访问会话
所以我在做一个项目,我有点挣扎。。。 我正在使用VueJS进行前端和Firebase身份验证来登录用户 我正在尝试确定用户当前是否使用Javascript VueJS+;Firebase身份验证可以';在加载脚本之前不能访问会话,javascript,firebase,vue.js,firebase-authentication,Javascript,Firebase,Vue.js,Firebase Authentication,所以我在做一个项目,我有点挣扎。。。 我正在使用VueJS进行前端和Firebase身份验证来登录用户 我正在尝试确定用户当前是否使用firebase.auth().currentUser登录 (如果返回null,则没有用户登录)听起来很简单,对吗 我正在vueJScreated()函数中运行currentUser()。但是,运行firebase.auth().currentUser这里似乎总是返回null。但是,如果我使用set timeout方法,那么它就能够获取用户数据。在我看来,vue正
firebase.auth().currentUser登录代码>
(如果返回null,则没有用户登录)听起来很简单,对吗
我正在vueJScreated()函数中运行currentUser()。但是,运行firebase.auth().currentUser代码>这里似乎总是返回null。但是,如果我使用set timeout方法,那么它就能够获取用户数据。在我看来,vue正在尝试在加载数据之前获取数据
我希望这不是很难理解-我对Vue和firebase还很陌生!
请在下面找到我的代码片段
Vue.config.devtools = true;
var app = new Vue({
el: '#app',
data: {
user: '',
loggedIn: false
},
created() {
var user = firebase.auth().currentUser;
if (user != null){
this.user = user;
this.loggedIn = true;
} else {
this.loggedIn = false;
}
}
})
下面是我在页面正文底部加载的firebase脚本
<script src="https://www.gstatic.com/firebasejs/7.14.1/firebase-app.js"></script>
<script src="https://www.gstatic.com/firebasejs/7.15.5/firebase-auth.js"></script>
<script src="https://www.gstatic.com/firebasejs/7.14.1/firebase-database.js"></script>
<script src="https://www.gstatic.com/firebasejs/7.14.1/firebase-analytics.js"></script>
<script src="js/firebaseConfig.js" type="text/javascript"></script>
从本质上讲,如果不使用setTimeout()
方法,我如何解决这个问题?还有firebase如何获得此会话,哪个脚本处理此会话?firebase.auth()。只有在SDK确定用户实际登录后,它才会包含实际用户对象。目前还不能保证具体需要多长时间
找出何时发生这种情况的首选方法是使用身份验证状态观测器,如中所示
您可以使用此回调来确定何时为单个用户呈现内容
我还建议您在中阅读更多有关Firebase Auth SDK行为的信息。FYI您的脚本包含不同的版本。这可能会造成问题。它们应该是同一个版本。
firebase.auth().onAuthStateChanged(function(user) {
if (user) {
// User is signed in.
// ...
} else {
// User is signed out.
// ...
}
});