gpt4 book ai didi

swift - 如果 FUIAuth 处理失败,为什么 Google 示例代码会退回到 GIDSignIn 处理?

转载 作者:行者123 更新时间:2023-11-28 07:50:16 24 4
gpt4 key购买 nike

我在浏览 Google 的示例应用程序 Friendly Pix 的 iOS 源代码时,注意到一些我不了解他们使用的登录逻辑的地方。具体来说,在他们的 AppDelegate.swift 代码(完整来源 here )中,他们使用以下设置授权属性:

let authUI = FUIAuth.defaultAuthUI()
authUI?.delegate = self
authUI?.tosurl = kFirebaseTermsOfService
authUI?.isSignInWithEmailHidden = true
let providers: [FUIAuthProvider] = [FUIGoogleAuth(), FUIFacebookAuth()]
authUI?.providers = providers

稍后,他们通过最终调用此方法来处理登录回调:

func handleOpenUrl(_ url: URL, sourceApplication: String?) -> Bool {
if FUIAuth.defaultAuthUI()?.handleOpen(url, sourceApplication: sourceApplication) ?? false {
return true
}
return GIDSignIn.sharedInstance().handle(url, sourceApplication: sourceApplication, annotation: nil)
}

这让我想到了我的问题:为什么他们调用 GIDSignIn.sharedInstance().handle(...)?由于 FUIGoogleAuth()FUIAuth.defaultAuthUI() 的提供者之一,调用 FUIAuth.defaultAuthUI()?.handleOpen(.. .) 在内部处理任何 Google 登录?在什么情况下,GIDSignIn 方法的 handle() 会执行尚未通过调用 handleOpen() 方法完成的任何操作>FUIAuth?

虽然这可能是为了处理 FUIAuth.defaultAuthUI() 可能返回 nil 的可能性,但是,如果发生这种情况,我认为不会该应用程序将永远进展到这一步,因为触发回调的身份验证是:

let authViewController = FUIAuth.defaultAuthUI()?.authViewController()
authViewController?.navigationBar.isHidden = true
self.present(authViewController!, animated: true, completion: nil)

如果 authViewControllernil,最后一行会崩溃(如果 FUIAuth.defaultAuthUI() 返回 nil,就会发生这种情况)。

最佳答案

我使用的是现已弃用的 Firebase Invites,它不接受 Firebase Auth token 。我正在更新代码,应该很快就会出来。

关于swift - 如果 FUIAuth 处理失败,为什么 Google 示例代码会退回到 GIDSignIn 处理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49886980/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com