FIRAuth.addAuthStateDidChangeListener会在调用监听器之前等到初始化结束吗?

问题描述 投票:0回答:1

有关addAuthStateDidChangeListener函数的Firebase Auth for iOS文档说明:

将块作为“auth state does changed”监听器注册。在以下情况下调用:

  • 该块被注册为监听器,
  • 具有与当前用户不同的UID的用户已登录,或
  • 当前用户已退出。

在根据它的标准调用语义添加块之后立即调用该块,在主线程上异步。

上面的第一点和最后一段让我感到困惑。如果我在初始化Firebase后立即添加了一个监听器,那么在Firebase Auth从之前的会话中恢复用户之前是否可以调用监听器?

在这种情况下,如何判断侦听器与空用户的调用是否因为没有用户或者用户尚未恢复而区分?

firebase firebase-authentication
1个回答
1
投票

确实可以在恢复身份验证状态之前调用身份验证状态侦听器,在这种情况下,在使用“用户已登录”调用之前,将首先使用“用户未登录”状态调用侦听器。 ”。

Android SDK现在实际上隐藏了第一个身份验证状态,但我不认为iOS SDK会做同样的事情。你可能想尝试一下。只需登录应用程序,关闭应用程序,等待至少一个小时(以便您的访问令牌已过期)并再次启动应用程序。

我不确定大多数开发人员如何处理这个问题,但我知道这两种方式:

  1. 将显示重定向到登录页面。因此,如果您在没有用户的情况下获得身份验证状态,请显示指向登录页面的链接。在初始“未登录”的情况下,这意味着用户将暂时看到此页面,直到登录状态恢复为止。
  2. 使重定向等待刷新。这基本上只是一个超时,例如“检测登录状态”或类似的东西。对于知道不会登录的用户,您可能还希望在其中包含显式重定向链接。

我同意,如果这些在移动应用程序中是理想的,那么我很想知道别人做了什么。

© www.soinside.com 2019 - 2024. All rights reserved.