我正在尝试在我的应用程序中添加 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/