目前我的应用程序正在使用授权状态更改回调来指示在我的应用程序中授权和主页面部分之间移动。 (注意:我没有使用AngularFire)
在Firebase 3中有firebase.auth().currentUser
但是如果firebase尚未从服务器提取数据,则currentUser设置为null。此值在启动时可能为null,但在2秒后设置,而无需用户对应用程序执行任何操作。
在我的应用中,用户授权状态应该是他们看到的第一个屏幕的决定因素,因为这本质上是异步的,他们会看到授权页面,然后在当前用户更新它之后#39;将它们移动到主页,显示一个非常俗气的页面切换。
启动画面 - >登录 - >家
“登录”页面上的时间长短取决于互联网连接,但是对于移动数据,这一点非常明显。
有没有办法强制检查用户是否登录后会返回true还是false?我可以将异步方法转换为promise,问题是如果用户已经注销,则不会在启动时调用onAuthStateChanged
回调。
答案 0 :(得分:2)
没有。使用.onAuthStateChanged
确定用户身份验证状态。
就currentUser
之前的登录显示/闪烁而言,这是通过修改HTML / CSS修复的问题。默认视图不应显示登录元素。仅在.onAuthStateChanged
告诉您用户未登录后显示。