よろしくお願いいたします。
現在Swift5にてログイン画面を作成しております。
色々な方の実装などを参考にしましたが、よくわからないことがたくさんあったので、公式のドキュメントを元に作成しております。
2次認証まで進み、ユーザー名などの取得ができているため、ログインはできていると思うのですが、Firebaseコンソール画面のAuthentication画面でユーザーが表示されません。
個人的にはAppDelegateの最後に記述しているguard let authentication
あたりがわからず、放置気味なのでその辺りなのかなと思っております。
何かコードの記述忘れがあるのかと調べましたが丸3日調べてもわからないため、ここでご助力いただければと質問させていただきます。
まだまだ初学者のため、基本的なことを忘れている場合には、呆れてしまわれるかもしれませんが、アドバイスいただければと思います。
開発環境
OS:MacOS Mojave 10.14.6
Xcode: Ver11
Swift5 storybord
AppDelegate
1import UIKit 2import CoreData 3import Firebase 4import GoogleSignIn 5 6@UIApplicationMain 7class AppDelegate: UIResponder, UIApplicationDelegate, GIDSignInDelegate { 8 9 var window: UIWindow? 10 11 12 func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { 13 FirebaseApp.configure() 14 15 GIDSignIn.sharedInstance()?.clientID = FirebaseApp.app()?.options.clientID 16 GIDSignIn.sharedInstance()?.delegate = self 17 return true 18 } 19 20 21 @available(iOS 9.0, *) 22 func application(_ application: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any])-> Bool { 23 return GIDSignIn.sharedInstance().handle(url) 24 } 25 26 func sign(_ signIn: GIDSignIn!, didSignInFor user: GIDGoogleUser!, withError error: Error!) { 27 if let error = error{ 28 if (error as NSError).code == GIDSignInErrorCode.hasNoAuthInKeychain.rawValue{ 29 print("The user has not signed in before or they have since signed out") 30 }else{ 31 print("(error.localizedDescription)") 32 } 33 return 34 } 35 36 let fullName = user.profile.name 37 38 print(fullName) //名前確認 39 40 guard let authentication = user.authentication else { return } 41 // _ = let credential 42 _ = GoogleAuthProvider.credential(withIDToken: authentication.clientID, accessToken: authentication.accessToken) 43 }
ViewController
1import UIKit 2import Firebase 3import GoogleSignIn 4 5class ViewController: UIViewController{ 6 7 @IBOutlet var googleAuthButton: GIDSignInButton! 8 @IBOutlet var fromEmail: UILabel! 9 10 11 override func viewDidLoad() { 12 super.viewDidLoad() 13 GIDSignIn.sharedInstance()?.presentingViewController = self 14 GIDSignIn.sharedInstance()?.restorePreviousSignIn() 15 } 16 17 @IBAction func signOut(_ sender: Any) { 18 GIDSignIn.sharedInstance()?.signOut() 19 } 20 21}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。