我在SceneDelegate中建立了一个Firebase身份侦听器。
要退出,请在我的一个视图控制器中调用:
try! Auth.auth().signOut()
这行得通,并把我带到了应该去的地方。但是,当我尝试注销后立即注册新用户时,它会在注册后立即加载不正确的数据并将用户跳回与先前用户的设置状态关联的视图。
根据这里的建议,我做了一些设置持久性为false的事情,并清除了应用程序委托中的缓存:
db.clearPersistence { (error) in
print(error?.localizedDescription)
}
let settings = FirestoreSettings()
settings.isPersistenceEnabled = false
但是,注销后也会发生相同的情况。请注意,从终止状态开始,应用程序会注册并正常登录,但看来缓存并未被删除。我深入研究了数据库调用并添加了源:.server,但这也无济于事。
我还尝试了注销功能中的侦听器。
Auth.auth().removeStateDidChangeListener(SceneDelegate.sharedSceneDelegate?.authHandle as! NSObjectProtocol)
然后,在加载登录屏幕时,通过以其自己的方法调用它来重新附加它。这也不起作用。
任何想法都会受到赞赏。