目前我的应用程序正在使用授权状态更改回调来指示在我的应用程序中的授权和主页部分之间移动。(注意:我没有使用AngularFire)
在Firebase 3中有firebase.auth().currentUser
,但是currentUser被设置为null,如果Firebase还没有完成从服务器提取数据。该值可能在启动时为空,但在用户不对应用程序进行任何操作的情况下,2秒后设置。
在我的应用中,用户的授权状态应该是他们看到的第一个屏幕的决定因素,因为这本质上是异步的,他们看到的是授权页面,然后在currentUser更新后它将他们移动到主页,这显示了一个非常时髦的页面切换。
启动界面->登录->主页
登录页面的时间取决于互联网连接,但在移动数据上,这是非常明显的。
是否有办法强制检查用户是否登录,并返回真或假?我可以把异步方法变成一个承诺,问题是,如果用户已经注销,onAuthStateChanged
回调不会在启动时调用。
No。使用.onAuthStateChanged
判断用户的Auth状态
在登录显示/闪烁currentUser
之前,这是一个通过修改你的HTML/CSS修复的问题。默认视图不应该显示login元素。
.onAuthStateChanged
告诉您用户未登录后。