点击 login.html 页面中的“登录”按钮,我正在尝试1)登录并2)从Firebase数据库检索用户数据并显示它们位于名为 personal_page.html 的新HTML页面中(除了“登录”按钮所在的页面之外),点击“后再次打开和加载登录“按钮,因为它位于</a>
标记内。这是检索部分:
btnLogin.addEventListener("click", function () {
// Get email and pass
const email = txtEmail.value;
const pass = txtPassword.value;
const auth = firebase.auth();
// Sign in
const promise = auth.signInWithEmailAndPassword(email, pass);
promise.catch(e => console.log(e.message));
let rootRef = firebase.database().ref("Users");
rootRef.orderByChild("email").equalTo(email).on("value", function (snapshot) {
var user = snapshot;
user.forEach(function (childsnapshot) {
var userInfo = childsnapshot.val();
localStorage.setItem("FirstName", userInfo.first_name);
})
})
所以,我正在做的或者至少我想要做的是从数据库中获取这些数据,将其保存在localStorage中,并在加载personal_page.html时获取并显示此数据。我面临的问题是,单击“登录”按钮后,personal_page.html页面的加载速度比检索数据并存储在localStorage中的速度要快。我怀疑它发生的原因之一是我上面有一个异步代码,这就是为什么它的执行被延迟了。任何想法发生了什么,如何解决这个或可能是另一种方式?感谢