ios - google - Uso del identificador no resuelto ''FIRAuth''(Swift 2, Firebase 3.x)
use of unresolved identifier auth (12)
Actualización a la nueva base de fuego. Creé un nuevo inicio de sesión de VC y todo funcionaba bien en términos de no errores.
Intente replicar este nuevo tutorial: https://codelabs.developers.google.com/codelabs/firebase-ios-swift/index.html?index=..%2F..%2Findex#0
Ahora, de repente, me aparece el error. Uso del identificador no resuelto ''FIRAuth'' en todo mi CV.
He intentado volver a instalar el archivo de pods y no he tenido suerte, parece que a veces si agrega "importar Firebase" y luego lo elimina, la aplicación se compilará, parece que no hay rima o razón por la que a veces funciona. y otras veces no lo hace:
Aquí está mi código:
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)
}
}
¿Alguien tiene alguna idea de por qué esto estaría sucediendo?
Actualicé Cocoapods y ejecuté la actualización del pod y solucioné todos mis problemas
Actualizado 2016/12/26 con Swift 3
y Firebase 3.11.0
Añadir a Podfile
pod ''Firebase/Auth''
En tu lugar necesitas usar Auth, solo
import Firebase
Limpiar y reconstruir, se borrará el error.
Esta solución es referida por Google. https://firebase.google.com/docs/auth/ios/password-auth
Agregue "import Firebase" y presione cmd + B
Ahora ha sido renombrado de "FIRAuth" a "Auth"
Cuando uso Firebase en un UIViewController me aseguro de importar Firebase y después de eso limpio el caché / compilación (cmd + shift + k) y luego compilo (cmd + b).
Parece funcionar pero tengo que rehacer el proceso cada vez que construyo.
EDITAR
Si no funciona la primera limpieza, sigue limpiando hasta que lo haga. No es la solución perfecta pero funciona.
Debe agregar el pod ''Firebase / Auth'' en el archivo pod, importar Firebase y FirebaseAuth a su controlador, ahora para usar Auth no es FIRAuth.auth()
, es Auth.auth().signInAnonymously
.
Eliminar esta importación:
importar FirebaseAuth
Añadir esta declaración en su lugar. Esto funcionó para mí.
importar base de fuego
MeasurementHelper.sendLoginEvent ()
AppState.sharedInstance.displayName = user?.displayName ?? user?.email
Estado de la aplicación es unidetified
Primero necesitamos agregar el Pod de Firebase Auth en el podfile.
pod ''Firebase / Auth''
Entonces necesitamos ejecutar el terminal con '' pod install ''
De acuerdo con el documento de base de firmas, es necesario agregar importación a base de fuego en nuestro controlador de vista. Pero no resolverá su problema. Es necesario agregar importación FirebaseAuth . Esto eliminará el error.
Solución ahora, en Swift 4.2, donde se queja simplemente de "Auth" y no de "FIRAuth" que dice "Uso del identificador no resuelto Auth":
Tenga en cuenta que hay dos importaciones distintas. import Firebase
e import FirebaseAuth
La primera fue suficiente la mayor parte del tiempo, pero a veces el compilador se confunde y agregar la segunda versión ayuda a aclarar las cosas.
Parece que ahora es solo "Auth" y no "FIRAuth"
Para futuros lectores:
Asegúrese de incluir lo siguiente en su Podfile
:
pod ''Firebase/Auth''
Después de instalar los pods, use:
import FirebaseAuth
Esto es lo que me lo resolvió.