有关addAuthStateDidChangeListener
函数状态的iOS Firebase Auth文档说明:
将一个块注册为“身份验证状态确实已更改”侦听器。在以下情况下调用:
该块已注册为侦听器,
具有与当前用户不同的UID的用户登录,或者
当前用户已退出。
根据标准调用语义将其添加后,立即在主线程上异步调用该块。
上面的第一点和最后一段使我感到困惑。如果我在初始化Firebase之后立即添加侦听器,是否有可能在Firebase Auth从上一个会话中还原用户之前调用该侦听器?
在这种情况下,我该如何区分是由于没有用户还是由于尚未恢复用户而导致使用空用户的侦听器调用?
答案 0 :(得分:1)
确实有可能在恢复身份验证状态之前调用auth状态侦听器,在这种情况下,最初将以“用户未登录”状态调用侦听器,然后再以“ user”调用已登录”。
这些天,Android SDK实际上隐藏了第一个身份验证状态,但我认为iOS SDK并没有做到这一点。您可能想尝试一下。简单地登录到该应用程序,关闭该应用程序,等待至少一个小时(这样您的访问令牌已过期),然后再次启动该应用程序。
我不确定大多数开发人员如何处理此问题,但是我知道这两种方式:
我同意,这些都不是移动应用程序中的理想选择,所以我很好奇其他人会做什么。