Использование неразрешенного идентификатора "FIRAuth" (Swift 2, Firebase 3.x)

Обновление новой базы. Создал новый signin VC, и все отлично работало без ошибок.

Попытка повторить этот новый учебник: https://codelabs.developers.google.com/codelabs/firebase-ios-swift/index.html?index=..%2F..%2Findex#0

Теперь я внезапно получаю сообщение об ошибке. Использование неразрешенного идентификатора "FIRAuth" во всем моем VC.

Я попытался переустановить файл pods и не имел никакой удачи, кажется, что иногда, если он добавляет "import 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)
}

}

Кто-нибудь знает, почему это происходит?

Ответы

Ответ 1

Я обновил Cocoapods и выполнил обновление pod, и он исправил все мои проблемы.

Ответ 2

Для будущих читателей:

Обязательно включите в Podfile следующее:

pod 'Firebase/Auth'

После установки контейнеров используйте:

import FirebaseAuth

Это то, что разрешило это для меня.

Ответ 3

Обновлено 2016/12/26 с помощью Swift 3 и Firebase 3.11.0
Добавить в подфайл

pod 'Firebase/Auth'

В вашем месте вам нужно использовать Auth, просто

import Firebase

Очистите и перестройте, вы очистите ошибку.

Это решение передается от Google. https://firebase.google.com/docs/auth/ios/password-auth

Ответ 4

Вам нужно добавить pod 'Firebase/Auth' на файл pod, импортировать Firebase и FirebaseAuth на ваш контроллер, теперь использовать Auth не FIRAuth.auth(), is Auth.auth().signInAnonymously и работать нормально.

Ответ 5

Добавьте "import Firebase" и нажмите cmd + B

Ответ 6

Удалить этот импорт:

import FirebaseAuth

Добавьте это утверждение вместо этого. Это сработало для меня.

import Firebase

Ответ 7

При использовании Firebase в UIViewController я обязательно импортирую Firebase, после чего очищаю кеш/сборку (cmd + shift + k), а затем строю (cmd + b).

Кажется, нужно работать, но я должен переделывать процесс каждый раз, когда я строю.

ИЗМЕНИТЬ

Если он не работает, первый чистый, просто продолжайте чистку до тех пор, пока это не произойдет. Не идеальное решение, но оно работает.

Ответ 8

сначала нам нужно добавить pod firebase Auth в podfile

pod 'Firebase/Auth'

Затем нам нужно запустить терминал с помощью < pod install

В соответствии с Firebase Doc нам нужно добавить import firebase на наш диспетчер представлений. но это не решит вашу проблему. Вам нужно добавить import FirebaseAuth. Это будет удалите ошибку.

Ответ 9

Теперь он был переименован из "FIRAuth" в "Auth"

Ответ 11

MeasurementHelper.sendLoginEvent()

AppState.sharedInstance.displayName = user?.displayName ?? user?.email

AppStateis unidetified