可以在Javascript中同步检查Firebase 3身份验证状态吗?
目前,我的应用程序正在使用授权状态更改回调来指示在我的应用程序的授权和主页部分之间移动。(注意:我没有使用AngularFire) 在Firebase 3中有可以在Javascript中同步检查Firebase 3身份验证状态吗?,javascript,firebase,firebase-authentication,Javascript,Firebase,Firebase Authentication,目前,我的应用程序正在使用授权状态更改回调来指示在我的应用程序的授权和主页部分之间移动。(注意:我没有使用AngularFire) 在Firebase 3中有Firebase.auth().currentUser,但是如果Firebase尚未完成从服务器提取数据,则currentUser设置为null。此值在启动时可能为空,但在用户不使用应用程序的情况下,可在2秒后设置 在我的应用程序中,用户的授权状态应该是他们看到的第一个屏幕的决定因素,因为这本质上是异步的,他们看到的是授权页面,然后在当前用
Firebase.auth().currentUser
,但是如果Firebase尚未完成从服务器提取数据,则currentUser设置为null。此值在启动时可能为空,但在用户不使用应用程序的情况下,可在2秒后设置
在我的应用程序中,用户的授权状态应该是他们看到的第一个屏幕的决定因素,因为这本质上是异步的,他们看到的是授权页面,然后在当前用户更新后,它会将他们移动到主页,其中显示一个非常俗气的页面切换
启动屏幕->登录->主页
登录页面上的时间长短取决于互联网连接,但移动数据非常明显
有没有办法强制检查用户是否已登录并返回true或false?我可以将一个异步方法变成一个承诺,问题是如果用户已经注销,启动时不会调用
onAuthStateChanged
回调。否。使用.onAuthStateChanged
确定用户的身份验证状态
就在
currentUser
之前显示/闪烁的登录而言,这是一个通过修改HTML/CSS修复的问题。默认视图不应显示登录元素。仅在之后显示。onAuthStateChanged
告诉您用户未登录。GitHub上的Firebase v3身份验证完整工作示例这正是我想做的,但它似乎是一个黑客解决方案。