gpt4 book ai didi

javascript - Electron 版Firebase Electron 邮件/密码身份验证

转载 作者:行者123 更新时间:2023-12-03 12:26:04 25 4
gpt4 key购买 nike

我在我的 Electron 应用程序中使用 Electron 邮件/密码进行了Firebase身份验证,并且可以正常工作,但仅在首页上进行。当我转到第二页时,不再登录。因为我也是elecetron.js和firebase的新手,所以我使用了本教程:https://www.youtube.com/watch?v=bWS0ocfszmE

login.js

loginBtn.addEventListener('click', function() {
var emailField = document.getElementById('email').value;
var passwordField = document.getElementById('password').value;

firebase.auth().signInWithEmailAndPassword(emailField, passwordField).then(function() {
document.location.href = 'mainPage.html';
console.log(firebase.auth().currentUser);

}).catch(function(error) {
if (error != null) {
console.log(error.message);
alertify.error(error.message);
return;
}
});

secondpage.js
var firebase = require("firebase/app");
require("firebase/auth");
console.log(firebase.auth().currentUser);

我希望控制台与我登录的用户一起输出,但得到空值。

最佳答案

问题在于Firebase身份验证将在每个新页面上检查用户的登录 token 是否仍然有效。由于这可能需要一些时间(并且需要调用服务器),因此这是异步发生的。到您的console.log(firebase.auth().currentUser)运行时,该过程尚未完成。

这就是为什么要use an onAuthStateChanged listener来检测用户的身份验证状态的原因:

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

关于javascript - Electron 版Firebase Electron 邮件/密码身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56504458/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com