Ответ 1
Я обновил Cocoapods и выполнил обновление pod, и он исправил все мои проблемы.
Обновление новой базы. Создал новый 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)
}
}
Кто-нибудь знает, почему это происходит?
Я обновил Cocoapods и выполнил обновление pod, и он исправил все мои проблемы.
Для будущих читателей:
Обязательно включите в Podfile
следующее:
pod 'Firebase/Auth'
После установки контейнеров используйте:
import FirebaseAuth
Это то, что разрешило это для меня.
Обновлено 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
Вам нужно добавить pod 'Firebase/Auth' на файл pod, импортировать Firebase и FirebaseAuth на ваш контроллер, теперь использовать Auth не FIRAuth.auth()
, is Auth.auth().signInAnonymously
и работать нормально.
Добавьте "import Firebase" и нажмите cmd + B
Удалить этот импорт:
import FirebaseAuth
Добавьте это утверждение вместо этого. Это сработало для меня.
import Firebase
При использовании Firebase в UIViewController я обязательно импортирую Firebase, после чего очищаю кеш/сборку (cmd + shift + k), а затем строю (cmd + b).
Кажется, нужно работать, но я должен переделывать процесс каждый раз, когда я строю.
ИЗМЕНИТЬ
Если он не работает, первый чистый, просто продолжайте чистку до тех пор, пока это не произойдет. Не идеальное решение, но оно работает.
сначала нам нужно добавить pod firebase Auth в podfile
pod 'Firebase/Auth'
Затем нам нужно запустить терминал с помощью < pod install
В соответствии с Firebase Doc нам нужно добавить import firebase на наш диспетчер представлений. но это не решит вашу проблему. Вам нужно добавить import FirebaseAuth. Это будет удалите ошибку.
Теперь он был переименован из "FIRAuth" в "Auth"
Он выглядит как теперь он просто "Auth", а не "FIRAuth"
MeasurementHelper.sendLoginEvent()
AppState.sharedInstance.displayName = user?.displayName ?? user?.email
AppStateis unidetified