ios - 除了 AppDelegate 和 UIViewController 之外的一个类中的 GIDSignInDelegate 用法示例,用于快速进行 Google 身份验证

标签 ios swift firebase firebase-authentication

我目前正在使用一个类 FirebaseManager(除了任何 UIViewController 子类和 AppDelegate)来实现 GIDSignInDelegate 协议(protocol)。

现在我不知道如何在用户成功登录到谷歌帐户后实际显示错误或打开第一页。

最佳答案

方法 sign(_ signIn: GIDSignIn!, didSignInFor user: GIDGoogleUser!, withError error: Error?) {...} 在尝试登录后被调用。如果您遵循他们的文档,它会在应用程序委托(delegate)中设置,理论上该方法将位于该位置。

这是我的解决方案。

  1. 按照 Google 文档设置 Google 登录(将内容放入 app delegate 等)
  2. 将您的 FirebaseManager 设置为 GIDSignIn 共享实例的 UI 委托(delegate)(在它的初始化中或您使用它的地方 GIDSignIn.sharedInstance().uiDelegate = self/FirebaseManagerBlahblah
  3. 从应用代理成功登录后访问 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/

相关文章:

ios - 为 NSFetchedResultsController 设置 NSPredicate

ios - JS 在 Swift 中调用一个函数

ios - 尝试更新 firebase 但节点值被删除

java - Android Studio,我的 Activity 转到错误的 Activity

ios - 在巨大的 UICollectionView 中加载图片

ios - 如何从 UIViewController 打开照片应用程序?

ios - 通知服务扩展 - 有关在推送通知上显示图像的问题

ios - 为什么 Storyboard ui 元素没有显示在 xcode 9 中的 UIViewController 上

random - swift 随机数

javascript - Firebase数据库返回null;刷新后,它返回正确的值