Это мой веб-страницаfirebase.initializeApp callback/обещание?
<!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);
? Вид обратного вызова.
Вы видели это https://firebase.google.com/docs/auth/web/manage-users? он охватывает ваш случай –