ios - 快速谷歌登录

标签 ios swift xcode swift3

我正在尝试在我的应用程序中添加 Google 登录(使用 firebase),我可以成功访问,但我不知道如何在此之后更改 viewController

import UIKit
import FirebaseAuth
import FBSDKCoreKit
import FBSDKLoginKit
import GoogleSignIn

class FirstClass: UIViewController , FBSDKLoginButtonDelegate, GIDSignInUIDelegate {


    @IBOutlet weak var FirstClass: UIView!
    @IBOutlet weak var signButton: UIButton!
    @IBOutlet weak var lButton: UIButton!
    @IBOutlet weak var customSegmented: CustomSegmentedControl!


    let loginButton = FBSDKLoginButton()


/*  let credential = FacebookAuthProvider.credential(withAccessToken: FBSDKAccessToken.current().tokenString) */






    override func viewDidLoad() {
        super.viewDidLoad()

       /* GIDSignIn.sharedInstance().uiDelegate = self
        GIDSignIn.sharedInstance().signIn()  */

        setupGoogleButtons()

        loginButton.readPermissions = ["public_profile", "email", "user_friends"]
        loginButton.frame = CGRect(x: 67, y: 536, width: 118, height: 41 )
        loginButton.delegate = self
        self.view.addSubview(loginButton)
    }




    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }






    override func viewDidAppear(_ animated: Bool) {

        if Auth.auth().currentUser != nil {
            self.performSegue(withIdentifier: "goToHome1", sender: self)
        }

    }



    fileprivate func setupGoogleButtons() {

        let googleButton = GIDSignInButton()
        googleButton.frame = CGRect(x: 189, y: 536, width: 118, height: 41)
        view.addSubview(googleButton)

        GIDSignIn.sharedInstance().uiDelegate = self
}





    func handleCustomGoogleSign() {
        GIDSignIn.sharedInstance().signIn()
}











    func sign(_ signIn: GIDSignIn!, didSignInFor user: GIDGoogleUser!, withError error: Error?) {

        if let error = error {
            print("Failed to log into Google: ", error)
            return
        }
        print("Successfully logged into Google", user)

        guard let idToken = user.authentication.idToken else { return }
        guard let accessToken = user.authentication.accessToken else { return }
        let credentials = GoogleAuthProvider.credential(withIDToken: idToken, accessToken: accessToken)

        Auth.auth().signIn(with: credentials, completion: { (user, error) in
            if let err = error {
                print("Failed to create a Firebase User with Google account: ", err)
                return
            }

            guard let uid = user?.uid else { return }

            print("Successfully logged into Firebase with Google", uid)
        })
    }

这是 viewController 代码的相关部分,其中包含 google 登录按钮。成功登录后,我必须在哪里添加“执行转场”以更改 View ?

最佳答案

我正在使用它在 Appdelegate 中执行 segue

let navigationController = self.window?.rootViewController as! UINavigationController
            for controller in navigationController.viewControllers {
                if let LoginViewController = controller as? LogInViewContoller {
                    LoginViewController.performSegue(withIdentifier: "logInToHome", sender: nil)
                    break
                }

您可以在登录Appdelegate后放置这段代码。这样,一旦登录,您就可以直接转到下一个 View Controller 。

关于ios - 快速谷歌登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46237573/

相关文章:

iOS - 应用程序在启动时崩溃,可能被运行时杀死

javascript - 出现键盘时 UIWebView 滚动。导致抽头偏移错误?

ios - 解析实时查询 cocoapods 和 Swift 3

ios - 在 Safari 中打开其他网站的 WKWebView 链接

xcode - 如何禁用ios模拟器中的所有动画

ios - 如何将源代码编译的 LLVM 与 Xcode 集成?

objective-c - 未分配对象指针被释放的 iOS Objective-C 错误

ios - 手机重启后,远程通知未发送到我的应用程序

swift - 分段控制不会切换到第二个容器

ios - 在 iPad 上使用 window.overrideUserInterfaceStyle 时暗模式未启用/禁用