firebase - 如何在加载我的网页之前优先考虑 Firebase Web 身份验证
问题描述
我有一个简单的登录布局。当用户登录网页时,我想停止加载或显示它。一切正常,但是在验证 firebase 身份验证时似乎有一点延迟,这就是为什么每当我刷新网页时,登录布局仍然显示得非常短暂。我希望它不被完全看到。
如您所见,在视频中用户已经登录。但是登录的用户名和密码以及按钮仍然显示得很简短。
解决方案
您不共享任何代码,但我假设您使用onAuthStateChanged()
观察者。如文档中所述,here和here,Auth
对象需要在触发观察者之前进行初始化,因此您无法避免遇到的行为。
您需要按如下方式管理自己的显示:
- 在
Auth
对象完全初始化之前(即 Auth 对象处于中间状态),显示带有微调器的欢迎/默认页面 - 如果用户已经登录,则显示相关页面
- 如果用户未登录,则显示登录页面
以下(伪注释代码)行:
// Show the spinner
firebase.auth().onAuthStateChanged(function(user) {
if (user) {
// User is signed in.
// Hide the spinner and show content
} else {
// No user is signed in.
// Hide the spinner and show the login form
}
});
推荐阅读
- sql - 查找其他两个表中不存在的表记录
- reactjs - 如何在 Material UI 中使用 CSS 选择器 >
- c# - System.Collections.Generic.KeyNotFoundException:字典中不存在给定键“All”
- python - python startswith 函数返回整个文本文件的内容
- javascript - 如何在 django 中使用 ajax 将产品添加到购物车?
- python - pytesseract - 从图像中提取数字
- visual-studio - 无法加载文件或程序集“CodeGeneration.Roslyn.Attributes,版本=0.7.0.0,文化=中性,PublicKeyToken=ec41cf4c17a5eaf3”
- android - 构建支持蓝牙的 Android Automotive 模拟器
- omnet++ - 禁用隐式块序列化以防止不可预知的性能下降
- redis - socketio join 不会创建空间,但在发布消息时有效