我目前正在使用一个类 FirebaseManager(除了任何 UIViewController 子类和 AppDelegate)来实现 GIDSignInDelegate 协议(protocol)。
现在我不知道如何在用户成功登录到谷歌帐户后实际显示错误或打开第一页。
最佳答案
方法 sign(_ signIn: GIDSignIn!, didSignInFor user: GIDGoogleUser!, withError error: Error?) {...}
在尝试登录后被调用。如果您遵循他们的文档,它会在应用程序委托(delegate)中设置,理论上该方法将位于该位置。
这是我的解决方案。
- 按照 Google 文档设置 Google 登录(将内容放入 app delegate 等)
- 将您的 FirebaseManager 设置为 GIDSignIn 共享实例的 UI 委托(delegate)(在它的初始化中或您使用它的地方
GIDSignIn.sharedInstance().uiDelegate = self/FirebaseManagerBlahblah
- 从应用代理成功登录后访问 uiDelegate
sign(_ signIn: GIDSignIn!, didSignInFor user: GIDGoogleUser!, withError error: Error?) {
守卫让 firebaseManager = signIn.uiDelegate as? FirebaseManager else { 返回 }
...用 firebaseManager 做事!
}
我不喜欢依赖 AppDelegate 的东西,但尽可能多地遵循文档是最有意义的。
关于ios - 除了 AppDelegate 和 UIViewController 之外的一个类中的 GIDSignInDelegate 用法示例,用于快速进行 Google 身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47211452/