swift4
xcode9.1
iosアプリにgoogle認証を実装する動画を参考にしています。
まだコードを自ら書けるレベルでは無いので動画作成者さんのコードをとにかく追って真似ていますが、
Type 'User' has no member 'authentication'または
Type 'User' has no member 'user'のエラーが出ます。
( 場所は●guard let authentication = user.authentication else { return }●の所です)
このエラーは'---'が存在しない為のエラーの様ですが、原因が分かりません。
このLogInViewControllerで不備のある箇所を教えていただきたいです。
お願いします。
・追記
本文内のコード
guard let authentication = User.authentication else { return }から
guard let authentication = user.authentication else { return }に修正しました。
import UIKit import Firebase import FirebaseAuth import GoogleSignIn class LogInViewController: UITableViewController, GIDSignInUIDelegate { @IBOutlet weak var emailText: UITextField! @IBOutlet weak var passwordText: UITextField! @IBOutlet weak var googleSignInButton: GIDSignInButton! override func viewDidLoad() { super.viewDidLoad() GIDSignIn.sharedInstance().uiDelegate = self GIDSignIn.sharedInstance().signIn() } override func viewDidAppear(_ animated: Bool) { if Auth.auth().currentUser?.uid != nil{goToHome() } } func login(){ Auth.auth().signIn(withEmail: emailText.text!, password:passwordText.text!,completion: { (user,error) in if error != nil{print(error!); return } self.goToHome() }) } func goToHome(){ } func sign(signIn: GIDSignIn!, didSignInForuser: GIDGoogleUser!,withError error: Error?) { // ... if let error = error { print(error);return } print("Signed into Google Successfully") guard let authentication = user.authentication else { return } let credential = GoogleAuthProvider.credential(withIDToken: authentication.idToken, accessToken: authentication.accessToken) Auth.auth()?.signIn(with: credential) { (user, error) in // ... if let error = error { print(error.localizedDescription) return } print("Signed into Firebase successfully") } } @IBAction func loginButtonAction(_ sender: Any) { login() } }
12/16 15:15追記しました。
下図の画像の通り、
guard let authentication = user.authentication else { return } のみを
Auth.auth()?.signIn(with: credential) { (user, error) in の下に移したのですが、
● Use of unresolved identifier 'authentication' ●エラーが出ました。
回答2件
あなたの回答
tips
プレビュー