web-dev-qa-db-ja.com

未解決の識別子「FIRAuth」の使用(Swift 2、Firebase 3.x)

新しいファイアベースへの更新。新しいサインインVCを作成しました。すべてエラーなしという点で正常に機能していました。

この新しいチュートリアルを複製しようとしています: https://codelabs.developers.google.com/codelabs/firebase-ios-Swift/index.html?index=..%2F..%2Findex#

今、突然、VC全体で未使用の識別子「FIRAuth」を使用していますというエラーが表示されます。

ポッドファイルを再インストールしてみましたが、運がありません。「Firebaseのインポート」を追加してから削除すると、アプリがコンパイルされる場合があります。また、そうでない場合もあります。

私のコードは次のとおりです。

import UIKit
import FirebaseAuth


class SignInViewController: UIViewController {

@IBOutlet weak var emailField: UITextField!

@IBOutlet weak var passwordField: UITextField!

override func viewDidAppear(animated: Bool) {
    if let user = FIRAuth.auth()?.currentUser { //error here 
        self.signedIn(user)
    }
}

@IBAction func didTapSignIn(sender: AnyObject) {
    // Sign In with credentials.
    let email = emailField.text
    let password = passwordField.text
    FIRAuth.auth()?.signInWithEmail(email!, password: password!) { //error here (user, error) in
        if let error = error {
            print(error.localizedDescription)
            return
        }
        self.signedIn(user!)
    }
}
@IBAction func didTapSignUp(sender: AnyObject) {
    let email = emailField.text
    let password = passwordField.text
    FIRAuth.auth()?.createUserWithEmail(email!, password: password!) { // error here(user, error) in
        if let error = error {
            print(error.localizedDescription)
            return
        }
        self.setDisplayName(user!)
    }
}

func setDisplayName(user: FIRUser) {
    let changeRequest = user.profileChangeRequest()
    changeRequest.displayName = user.email!.componentsSeparatedByString("@")[0]
    changeRequest.commitChangesWithCompletion(){ (error) in
        if let error = error {
            print(error.localizedDescription)
            return
        }
        self.signedIn(FIRAuth.auth()?.currentUser) //error here
    }
}

@IBAction func didRequestPasswordReset(sender: AnyObject) {
    let Prompt = UIAlertController.init(title: nil, message: "Email:", preferredStyle: UIAlertControllerStyle.Alert)
    let okAction = UIAlertAction.init(title: "OK", style: UIAlertActionStyle.Default) { (action) in
        let userInput = Prompt.textFields![0].text
        if (userInput!.isEmpty) {
            return
        }
        FIRAuth.auth()?.sendPasswordResetWithEmail(userInput!) { //error here (error) in
            if let error = error {
                print(error.localizedDescription)
                return
            }
        }
    }
    Prompt.addTextFieldWithConfigurationHandler(nil)
    Prompt.addAction(okAction)
    presentViewController(Prompt, animated: true, completion: nil);
}

func signedIn(user: FIRUser?) {
    MeasurementHelper.sendLoginEvent()

    AppState.sharedInstance.displayName = user?.displayName ?? user?.email
    AppState.sharedInstance.photoUrl = user?.photoURL
    AppState.sharedInstance.signedIn = true
    NSNotificationCenter.defaultCenter().postNotificationName(Constants.NotificationKeys.SignedIn, object: nil, userInfo: nil)
   // performSegueWithIdentifier(Constants.Segues.SignInToFp, sender: nil)
}

}

なぜこれが起こるのか誰にも分かりますか?

20
ryanbilak

Cocoapodsを更新し、Podの更新を実行し、すべての問題を修正しました

7
ryanbilak

将来の読者向け:

Podfileに以下を含めるようにしてください:

pod 'Firebase/Auth'

ポッドをインストールしたら、次を使用します。

import FirebaseAuth

これが私にとってそれを解決したものです。

51
aashah7

ポッド「Firebase/Auth」をポッドファイルに追加し、FirebaseとFirebaseAuthをコントローラーにインポートする必要があります。Authを使用するにはFIRAuth.auth()ではなくAuth.auth().signInAnonymouslyで、作業は問題ありません。

2016/12/26をSwift 3およびFirebase 3.11.0で更新
Podfileに追加

pod 'Firebase/Auth'

代わりに、Authを使用する必要があります。

import Firebase

クリーンして再構築すると、エラーがクリアされます。

このソリューションはGoogleから参照されています。 https://firebase.google.com/docs/auth/ios/password-auth

5
nynohu

「Firebaseのインポート」を追加して、cmd + Bを押します

3

UIViewControllerでFirebaseを使用するときは、Firebaseをインポートしてから、キャッシュ/ビルド(cmd + shift + k)を削除してからビルド(cmd + b)を実行します。

動作しているようですが、ビルドするたびにプロセスをやり直す必要があります。

[〜#〜] edit [〜#〜]

最初のクリーニングでうまくいかない場合は、それが終わるまでクリーニングを続けてください。完全な解決策ではありませんが、機能します。

2
nullforlife

まず、ポッドファイルにFirebase Authのポッドを追加する必要があります

ポッド「Firebase/Auth」

次に、「pod install」でターミナルを実行する必要があります

Firebase Docによると、viewcontrollerにimport firebaseを追加する必要がありますが、問題は解決しません。 import FirebaseAuthを追加する必要があります。これによりエラーが削除されます。

2
Sandu

このインポートを削除します。

firebaseAuthをインポートする

代わりにこのステートメントを追加してください。これは私のために働いた。

firebaseをインポートする

1
user1457303

現在、「FIRAuth」から「Auth」に名前が変更されています

1
Raj0689

Swift 4.2では、「未解決の識別子Authの使用」と言う「FIRAuth」ではなく、単に「Auth」について文句を言うところ:

2つの異なるインポートがあることに注意してください。 import Firebaseおよびimport FirebaseAuth

ほとんどの場合、最初のもので十分でしたが、時にはコンパイラーが混乱し、2番目のバージョンを追加することで問題を解決できます。

0
snakeoil

それ のように見えます 現在は「FIRAuth」ではなく「Auth」です

0
Levi Lais