ios - 谷歌登录并呈现 View Controller Swift

标签 ios swift google-signin

Google 登录流程对我来说有点奇怪,我不确定如何执行 segue 来显示我想要的 VC。

我已按照 Google 登录文档进行操作,流程如下

  1. 当我点击 google 按钮并使用我的 google 帐户登录时,我的 LoginVC 会调用以下内容

    func signInWillDispatch(signIn: GIDSignIn!, error: NSError!) {
    
  2. 然后在应用程序委托(delegate)中调用以下函数

    // Google signin
    func signIn(signIn: GIDSignIn!, didSignInForUser user: GIDGoogleUser!, withError error: NSError!) {
    
        if let error = error {
            print(error.localizedDescription)
            return
        }
    
        let authentication = user.authentication
        let credential = FIRGoogleAuthProvider.credentialWithIDToken(authentication.idToken, accessToken: authentication.accessToken)
    
        FIRAuth.auth()?.signInWithCredential(credential) { (user, error) in
        if let error = error {
            print("Error Signing in google")
        } else {
            print("Google signin successfully \(user?.email)")
    
        }
    }
    

    这是我可以检索用户数据的地方。我希望能够在从用户那里检索到我想要的所有数据后显示详细 View Controller 。但是,我真的无法从应用程序委托(delegate)中做到这一点。

另外,我的 LoginVC 中还有另外两个默认的 google 函数没有被调用,我不知道如何调用它。我相信这两个函数可能是我想要的解决方案?

 func signIn(signIn: GIDSignIn!, presentViewController viewController: UIViewController!) {

 func signIn(signIn: GIDSignIn!, dismissViewController viewController: UIViewController!) {

谢谢

最佳答案

This is where I can retrieve the user data. I want to be able to display a detail view controller after I retrieved all the data I wanted from the user. However, I cant really do that from app delegate.

您实际上可以对数据做任何您想做的事情并显示您的 View Controller 。

一旦您在应用程序委托(delegate)中收到了所有必需的数据,请将 NSNotification 中的数据传递到基本 Controller ,您将在其中推送或呈现详细 View Controller ,并且您可以使用从 NSNotification 传递的数据。

步骤:

  1. 发布来自应用委托(delegate)的通知以及收到的数据 来自 Google 的回电。
  2. 将监听器添加到基类中,您将从中推送或呈现详细信息 View 。
  3. 在基类的监听器函数调用中,检索从应用程序委托(delegate)对象传递的数据,并使用它来推送或呈现详细 View Controller 。

关于ios - 谷歌登录并呈现 View Controller Swift,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38561924/

相关文章:

objective-c - 面对 google plus 登录 IOS 的问题

ios - 错误域=NSCocoaErrorDomain 代码=3840 "The operation couldn’ 使用 AFNetworking 完成

ios - 当我的 SSL 证书过期后,ASIFormDataRequest 是否仍然有效?

ios - 当我点击 Pin 图时,没有得到正确的数据。解决方案?

ios - 在 UIViewRepresentable 中获取 UIView 的框架或边界

ios - 如何在 Swift 中的 UILabel 上显示 Float 值?

javascript - Google 登录(网站)- javascript

ios - 将 NSLog 写入设备上的本地文件 (iOS)

swift - UIPanGestureRecognizer - 避免同时移动两个图像 - Swift

ios - 如何检查用户是否已登录 Swift 中的 Google 帐户?