Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import UIKit
- import Firebase
- import FirebaseAuth
- import GoogleSignIn
- class LoginViewController: UIViewController, UITextFieldDelegate,GIDSignInDelegate, GIDSignInUIDelegate {
- @IBOutlet var mailField: UITextField!
- @IBOutlet var passwdField: UITextField!
- @IBOutlet weak var googleSignIn: GIDSignInButton!
- override func viewDidLoad() {
- super.viewDidLoad()
- mailField.delegate = self
- passwdField.delegate = self
- GIDSignIn.sharedInstance().clientID = FIRApp.defaultApp()?.options.clientID
- GIDSignIn.sharedInstance().delegate = self
- GIDSignIn.sharedInstance().uiDelegate = self
- }
- @IBAction func googleSignInClicked(sender: AnyObject) {
- GIDSignIn.sharedInstance().signIn()
- }
- func signIn(signIn: GIDSignIn!, didSignInForUser user: GIDGoogleUser!,
- withError error: NSError!) {
- print("Google Sing In didSignInForUser")
- if let error = error {
- print(error.localizedDescription)
- return
- }
- let authentication = user.authentication
- let credential = FIRGoogleAuthProvider.credential(withIDToken: (authentication?.idToken)!,accessToken: (authentication?.accessToken)!)
- //ユーザ登録後の処理....
- }
- func signIn(signIn: GIDSignIn!, didDisconnectWithUser user:GIDGoogleUser!,
- withError error: NSError!) {
- print("Google Sing In didDisconnectWithUser")
- // Perform any operations when the user disconnects from app here.
- // ...
- }
- override func didReceiveMemoryWarning() {
- super.didReceiveMemoryWarning()
- // Dispose of any resources that can be recreated.
- }
- @objc(textFieldShouldReturn:) func textFieldShouldReturn(_ mailField: UITextField) -> Bool{
- mailField.resignFirstResponder()
- return true
- }
- func passwdFieldShouldReturn(_ passwdField: UITextField) -> Bool{
- passwdField.resignFirstResponder()
- return true
- }
- @IBAction func loginBtn(_ sender: Any) {
- var mailAdress = mailField.text
- var password = passwdField.text
- //ワーニングが出るため別の方法を使用したほうがいい可能性有り
- FIRAuth.auth()?.signIn(withEmail: mailAdress!, password: password!) { (user, error) in
- if let error = error {
- print("サインインできません (error)")
- let alert: UIAlertController = UIAlertController(title: "エラー", message: "メールアドレスまたはパスワードが間違っています", preferredStyle: UIAlertControllerStyle.alert)
- let defaultAction: UIAlertAction = UIAlertAction(title: "リトライ", style: UIAlertActionStyle.default, handler:{
- (action: UIAlertAction!) -> Void in
- //処理部分だが、そのままAlertを閉じさせればいいためコードなし
- })
- alert.addAction(defaultAction)
- self.present(alert, animated: true, completion: nil)
- return
- //ログイン失敗時の処理
- }
- if let user = user {
- print("user : (user.email!) サインインできました")
- let storyboard: UIStoryboard = self.storyboard!
- let nextView = storyboard.instantiateViewController(withIdentifier: "joined") as!JoinedViewController
- self.present(nextView, animated: true, completion: nil)
- //ログイン成功時の処理
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement