理解addStateDidChangeListener火基认证的方法。

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

嗨,我是firebase的新手,想确认一下我对auth函数的理解,(addStateDidChangeListener)

说一下背景。

当应用程序第一次启动时,首先调用应用程序委托人,然后调用这个sceneDelegate函数。现在它会根据用户是否登录来呈现一个屏幕。如果他们没有登录,它将用我的signinsignup屏幕呈现给他们(self.createHandleSignIn或SignUp())。

现在有两个问题。

  1. 当他们注册或登录后,应用程序会跳回到这段代码里面 .addStateDidChangeListener.

    这是因为auth状态改变了吧?

  2. 另外,当应用程序运行时,你可以签出,然后这段代码被调用。

    这是因为这个函数在应用程序运行时一直在 "监听 "auth状态的变化,对吗?

下面的代码是我的SceneDelegate.swift文件的一部分,也是我有问题的函数。

谢谢您

class SceneDelegate: UIResponder, UIWindowSceneDelegate {

var window: UIWindow?

func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {
    guard let windowScene = (scene as? UIWindowScene) else { return }

    window = UIWindow(frame: windowScene.coordinateSpace.bounds)

    window?.windowScene = windowScene

    handle = Auth.auth().addStateDidChangeListener({ auth, user in
        if (user != nil) {
            self.window!.rootViewController = self.createTabBar()
        }
        else {
            self.window!.rootViewController = self.createHandleSignInOrSignUp()
        }
    })

    window?.makeKeyAndVisible()
}
swift firebase-authentication
1个回答
2
投票
  1. 每次auth状态改变时,你的auth状态改变监听器的完成处理程序将被调用。这通常是异步发生的,例如当用户签入或签出时。

  2. auth状态监听器一直处于活动状态,直到你删除它,或者直到应用程序退出。

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