質問編集履歴

2 本文修正

退会済みユーザー

退会済みユーザー

2017/12/27 16:10  投稿

FirebaseAuthでGoogle LogInを実装したいです。
swift4
xcode9.2
[FirebaseAuthでGoogle LogInを実装するサイト](https://qiita.com/tfutada/items/1f2b0c5e5f7214bae61d)を参考に、
AppDelegateとLogInViewControllerにコードをコピペしました。
```ここに言語を入力
(AppDelegateです)
import UIKit
import Firebase
import FirebaseAuth
import GoogleSignIn
import SlideMenuControllerSwift
import FBSDKCoreKit
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate, GIDSignInDelegate {
var window: UIWindow?
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
print("アプリ起動時の処理だよ")
FirebaseApp.configure()
GIDSignIn.sharedInstance().clientID = FirebaseApp.app()?.options.clientID
GIDSignIn.sharedInstance().delegate = self
//FBだよ
FBSDKApplicationDelegate.sharedInstance().application(application, didFinishLaunchingWithOptions: launchOptions)
return true
}
func applicationWillResignActive(_ application: UIApplication) {
print("アプリを閉じそうな感じだよ")
}
func applicationDidEnterBackground(_ application: UIApplication) {
print("アプリを閉じたよ")
}
func applicationWillEnterForeground(_ application: UIApplication) {
print("アプリを開きそうな感じだよ")
}
func applicationDidBecomeActive(_ application: UIApplication) {
print("アプリを開いたよ")
FBSDKAppEvents.activateApp()
}
func applicationWillTerminate(_ application: UIApplication) {
print("フリックしてアプリを終了させたよ")
}
func application(_ app: UIApplication, open url: URL, options:
[UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool {
return GIDSignIn.sharedInstance().handle(url, sourceApplication:options[UIApplicationOpenURLOptionsKey.sourceApplication] as? String, annotation: options[UIApplicationOpenURLOptionsKey.annotation])
//FBだよ
let handled:Bool = FBSDKApplicationDelegate.sharedInstance().application(app, open: url, options: options)
return handled
}
func sign(_ signIn: GIDSignIn!, didSignInFor user: GIDGoogleUser!, withError error: Error!)
{
if let error = error {
print("Error: \(error.localizedDescription)")
return
}
let authentication = user.authentication
// Googleのトークンを渡し、Firebaseクレデンシャルを取得する。
let credential = GoogleAuthProvider.credential(withIDToken: (authentication?.idToken)!,
accessToken: (authentication?.accessToken)!)
// Firebaseにログインする。
Auth.auth().signIn(with: credential) { (user, error) in
print("Sign on Firebase successfully")
// performSegue でログイン後のVCへ遷移させる。
}
}
func sign(_ signIn: GIDSignIn!, didDisconnectWith user: GIDGoogleUser!, withError error: Error!) {
print("Sign off successfully")
}
}
```
```ここに言語を入力
(LogInViewControllerです)
import UIKit
import Firebase
import FirebaseAuth
import GoogleSignIn
import FBSDKCoreKit
import FBSDKLoginKit
class LogInViewController: UIViewController, GIDSignInUIDelegate {
@IBOutlet weak var emailText: UITextField!
@IBOutlet weak var passwordText: UITextField!
override func viewDidLoad() {
super.viewDidLoad()
GIDSignIn.sharedInstance().clientID = FirebaseApp.app()?.options.clientID
GIDSignIn.sharedInstance().uiDelegate = self
//FBボタン
let loginButton:FBSDKLoginButton = FBSDKLoginButton()
loginButton.center = self.view.center
self.view.addSubview(loginButton)
//Gボタン
let signInButton = GIDSignInButton()
self.view.addSubview(signInButton)
}
@IBAction func backAction(_ sender: Any) {
self.navigationController?.popViewController(animated: true)
}
}
/* @IBAction func loginButtonAction(_ sender: Any) { login()
}*/
```
ですが、RUNしてもGoogle SignInボタンが現れません。
ボタンを作成する必要はないと思ったので、ストーリーボードは触っていません。
改善点を教えて頂きたいです。
よろしくお願いします。
  • Xcode

    7056 questions

    Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

  • Swift

    12284 questions

    Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

  • Firebase

    1738 questions

    Firebaseは、Googleが提供するBasSサービスの一つ。リアルタイム通知可能、並びにアクセス制御ができるオブジェクトデータベース機能を備えます。さらに認証機能、アプリケーションのログ解析機能などの利用も可能です。

1 本文編集

退会済みユーザー

退会済みユーザー

2017/12/27 15:44  投稿

FirebaseAuthでGoogle LogInを実装したいです。
swift4
xcode9.2
[FirebaseAuthでGoogle LogInを実装するサイト](https://qiita.com/tfutada/items/1f2b0c5e5f7214bae61d)を参考に、
AppDelegateとLogInViewControllerにコードをコピペしました。
```ここに言語を入力
(AppDelegateです)
import UIKit
import Firebase
import FirebaseAuth
import GoogleSignIn
import SlideMenuControllerSwift
import FBSDKCoreKit
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate, GIDSignInDelegate {
var window: UIWindow?
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
print("アプリ起動時の処理だよ")
FirebaseApp.configure()
GIDSignIn.sharedInstance().clientID = FirebaseApp.app()?.options.clientID
GIDSignIn.sharedInstance().delegate = self
//FBだよ
FBSDKApplicationDelegate.sharedInstance().application(application, didFinishLaunchingWithOptions: launchOptions)
return true
}
func applicationWillResignActive(_ application: UIApplication) {
print("アプリを閉じそうな感じだよ")
}
func applicationDidEnterBackground(_ application: UIApplication) {
print("アプリを閉じたよ")
}
func applicationWillEnterForeground(_ application: UIApplication) {
print("アプリを開きそうな感じだよ")
}
func applicationDidBecomeActive(_ application: UIApplication) {
print("アプリを開いたよ")
FBSDKAppEvents.activateApp()
}
func applicationWillTerminate(_ application: UIApplication) {
print("フリックしてアプリを終了させたよ")
}
func application(_ app: UIApplication, open url: URL, options:
[UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool {
return GIDSignIn.sharedInstance().handle(url, sourceApplication:options[UIApplicationOpenURLOptionsKey.sourceApplication] as? String, annotation: options[UIApplicationOpenURLOptionsKey.annotation])
//FBだよ
let handled:Bool = FBSDKApplicationDelegate.sharedInstance().application(app, open: url, options: options)
return handled
}
func sign(_ signIn: GIDSignIn!, didSignInFor user: GIDGoogleUser!, withError error: Error!)
{
if let error = error {
print("Error: \(error.localizedDescription)")
return
}
let authentication = user.authentication
// Googleのトークンを渡し、Firebaseクレデンシャルを取得する。
let credential = GoogleAuthProvider.credential(withIDToken: (authentication?.idToken)!,
accessToken: (authentication?.accessToken)!)
// Firebaseにログインする。
Auth.auth().signIn(with: credential) { (user, error) in
print("Sign on Firebase successfully")
// performSegue でログイン後のVCへ遷移させる。
}
}
func sign(_ signIn: GIDSignIn!, didDisconnectWith user: GIDGoogleUser!, withError error: Error!) {
print("Sign off successfully")
}
}
```
```ここに言語を入力
(LogInViewControllerです)
import UIKit
import Firebase
import FirebaseAuth
import GoogleSignIn
import FBSDKCoreKit
import FBSDKLoginKit
class LogInViewController: UIViewController, GIDSignInUIDelegate {
@IBOutlet weak var emailText: UITextField!
@IBOutlet weak var passwordText: UITextField!
override func viewDidLoad() {
super.viewDidLoad()
GIDSignIn.sharedInstance().clientID = FirebaseApp.app()?.options.clientID
GIDSignIn.sharedInstance().uiDelegate = self
//FBボタン
let loginButton:FBSDKLoginButton = FBSDKLoginButton()
loginButton.center = self.view.center
self.view.addSubview(loginButton)
//Gボタン
let signInButton = GIDSignInButton()
self.view.addSubview(signInButton)
}
@IBAction func backAction(_ sender: Any) {
self.navigationController?.popViewController(animated: true)
}
}
/* @IBAction func loginButtonAction(_ sender: Any) { login()
}*/
```
ですが、RUNしてもGoogle SignInボタンが現れません。
ボタンを作成する必要はないと思ったので、ストーリーボードは触っていません。
改善点を教えて頂きたいです。
よろしくお願いします。
  • Xcode

    7056 questions

    Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

  • Swift

    12284 questions

    Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

  • Firebase

    1738 questions

    Firebaseは、Googleが提供するBasSサービスの一つ。リアルタイム通知可能、並びにアクセス制御ができるオブジェクトデータベース機能を備えます。さらに認証機能、アプリケーションのログ解析機能などの利用も可能です。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る