gpt4 book ai didi

javascript - firebase.initializeApp 回调/ promise ?

转载 作者:可可西里 更新时间:2023-11-01 02:17:01 27 4
gpt4 key购买 nike

这是我的网页

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Calcolo Diliuzioni</title>

</head>
<body>

<h1>My app</h1>

<!-- Libreria per gestire l'autenticazione con google -->
<script src="https://apis.google.com/js/platform.js" async defer></script>

<!-- Firebae config -->
<script src="https://www.gstatic.com/firebasejs/live/3.0/firebase.js"></script>
<script>
// Initialize Firebase
var config = {
apiKey: "",
authDomain: "",
databaseURL: "",
storageBucket: "",
};
firebase.initializeApp(config);
</script>

<script type="text/javascript">
var user = firebase.auth().currentUser;
if (user) {
console.log(user);
} else {
console.log(user);
}
</script>
</body>
</html>

假设我有一个已经登录的用户。当我在控制台中加载页面时,我得到了 null。虽然我期望拥有当前用户的对象。

如果我在浏览器控制台中运行相同的代码

var user = firebase.auth().currentUser;
if (user) {
console.log(user);
} else {
console.log(user);
}

我能够获取当前用户的对象。

我认为 firebase.initializeApp(config); 有一些异步行为。解决它的正确方法是什么?我应该在 firebase.initializeApp(config); 函数上使用 promise 还是什么?一种回调..

最佳答案

初始化应用程序是同步的。但是,确定当前用户状态是异步的。确定当前身份验证状态的正确方法是使用观察者: https://firebase.google.com/docs/auth/web/manage-users

firebase.auth().onAuthStateChanged(function(user) {
if (user) {
// User is signed in and currentUser will no longer return null.
} else {
// No user is signed in.
}
});

关于javascript - firebase.initializeApp 回调/ promise ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37527247/

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