Q&A
Swift4
xcode9.2
Firebase
Facebookログインの設定を参考に実装しましたが、
既に実装していたGoogleログインのボタンがタップしても無反応になりました。
(ログインをコンテニューするかキャンセルするかのポップアップが表示されない)
原因が分からない為、教えていただければ幸いです。
(AppDelegateです) import UIKit import Firebase import FirebaseAuth import GoogleSignIn import FBSDKCoreKit import RAMAnimatedTabBarController @UIApplicationMain class AppDelegate: UIResponder, UIApplicationDelegate, GIDSignInDelegate { var window: UIWindow? func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { print("アプリ起動時の処理だよ") FirebaseApp.configure() FBSDKApplicationDelegate.sharedInstance().application(application, didFinishLaunchingWithOptions: launchOptions) GIDSignIn.sharedInstance().clientID = FirebaseApp.app()?.options.clientID GIDSignIn.sharedInstance().delegate = self return true } func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool { let handled:Bool = FBSDKApplicationDelegate.sharedInstance().application(app, open: url, options: options) _ = GIDSignIn.sharedInstance().handle(url, sourceApplication:options[UIApplicationOpenURLOptionsKey.sourceApplication] as? String!, annotation: options[UIApplicationOpenURLOptionsKey.annotation]) return handled } func sign(_ signIn: GIDSignIn!, didSignInFor user: GIDGoogleUser!, withError error: Error?) { if let error = error { print(error.localizedDescription) return } print("Googleログインが成功したよ") guard let authentication = user.authentication else { return } let credential = GoogleAuthProvider.credential(withIDToken: authentication.idToken, accessToken: authentication.accessToken) Auth.auth().signIn(with: credential, completion: { (user, error) in if let error = error{ print(error.localizedDescription) return } print("Firebaseに正常にログインしたよ") })} func sign(_ signIn: GIDSignIn!, didDisconnectWith user: GIDGoogleUser!, withError error: Error!) { } func applicationWillResignActive(_ application: UIApplication) { print("アプリ閉じそう") } func applicationDidEnterBackground(_ application: UIApplication) { print("アプリ閉じた") } func applicationWillEnterForeground(_ application: UIApplication) { print("アプリ開きそう") } func applicationDidBecomeActive(_ application: UIApplication) { print("アプリ開いた") FBSDKAppEvents.activateApp() //Facebookでも独自のカスタムイベントを定義して記録することができるようです。これいらないか } func applicationWillTerminate(_ application: UIApplication) { print("フリックしてアプリ終了") } }
(LogInViewControllerです) import UIKit import Firebase import FirebaseAuth import GoogleSignIn import FBSDKCoreKit import FBSDKLoginKit import RAMAnimatedTabBarController class LogInViewController: UIViewController, GIDSignInUIDelegate { @IBOutlet weak var GIDSignInButton: GIDSignInButton! @IBOutlet weak var FBSDKLoginButton:FBSDKLoginButton! override func viewDidLoad() { self.navigationItem.hidesBackButton = true super.viewDidLoad() GIDSignIn.sharedInstance().uiDelegate = self GIDSignIn.sharedInstance().signIn() } func loginButton(loginButton: FBSDKLoginButton!, didCompleteWithResult result: FBSDKLoginManagerLoginResult!, error: NSError!) { print("ログイン処理を実行") if (error != nil) { // エラーが発生した場合 print("Process Error !") } else if result.isCancelled { // ログインをキャンセルした場合 print("User Cancelled") } else { // その他 print("Login Succeeded") } } func sign(_ signIn: GIDSignIn!, didSignInFor user: GIDGoogleUser!,withError error: Error?) { if let error = error { print(error.localizedDescription) return } print("User signed into google") let authentication = user.authentication let credential = GoogleAuthProvider.credential(withIDToken: (authentication?.idToken)!, accessToken: (authentication?.accessToken)!) Auth.auth().signIn(with: credential) { (user, error) in print("User Signed Into Firebase") } } /* StoryboadでMailSignUpToFirstViewを引くため(戻るため)に必要 ボタン 戻る際の処理が特に必要ないのでメソッドは空です*/ func BackLogInView(segue: UIStoryboardSegue) { } }
回答1件
あなたの回答
tips
プレビュー
下記のような回答は推奨されていません。
このような回答には修正を依頼しましょう。
退会済みユーザー
2018/01/10 04:45 編集
2018/01/10 05:24
退会済みユーザー
2018/01/10 06:06