Mise à jour vers la nouvelle base de feu. Création d'une nouvelle connexion VC et tout fonctionnait correctement, sans erreur.
Essayer de reproduire ce nouveau didacticiel: https://codelabs.developers.google.com/codelabs/firebase-ios-Swift/index.html?index=..%2F..%2Findex#0
Maintenant, tout à coup, je reçois le message d'erreur. Utilisation de l'identificateur non résolu 'FIRAuth' sur mon VC.
J'ai essayé de réinstaller le fichier de pods et je n'ai pas eu de chance. Il semble que parfois, si vous ajoutez "import Firebase", puis supprimez-le, l'application compilée, il semble qu'il n'y ait pas de rime ou de raison pour laquelle cela fonctionne parfois. et d'autres fois ce n'est pas le cas:
Voici mon code:
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)
}
}
Quelqu'un at-il une idée de la raison pour laquelle cela se produirait?
J'ai mis à jour Cocoapods et lancé une mise à jour de pod, ce qui a résolu tous mes problèmes.
Pour les futurs lecteurs:
Assurez-vous d’inclure les éléments suivants dans votre Podfile
:
pod 'Firebase/Auth'
Après avoir installé les modules, utilisez:
import FirebaseAuth
C'est ce qui l'a résolu pour moi.
Mis à jour le 26/12/2016 avec Swift 3
et Firebase 3.11.0
Ajouter à Podfile
pod 'Firebase/Auth'
À votre place, vous devez utiliser Auth, juste
import Firebase
Nettoyer et reconstruire, vous effacerez l'erreur.
Cette solution provient de Google . https://firebase.google.com/docs/auth/ios/password-auth
Vous devez ajouter un pod 'Firebase/Auth' sur un fichier pod, importer Firebase et FirebaseAuth dans votre contrôleur. Désormais, utiliser Auth n'est pas FIRAuth.auth()
, est Auth.auth().signInAnonymously
et tout va bien.
Ajouter "import Firebase" et appuyez sur cmd + b
Lorsque j'utilise Firebase dans un UIViewController, je m'assure d'importer Firebase, puis de nettoyer le cache/la compilation (cmd + shift + k), puis de la construire (cmd + b).
Cela semble fonctionner, mais je dois refaire le processus à chaque fois que je construis.
MODIFIER
Si cela ne fonctionne pas le premier nettoyage, continuez jusqu'à ce que cela fonctionne. Pas la solution parfaite mais ça marche.
nous devons d'abord ajouter pod de firebase Auth dans podfile
pod 'Firebase/Auth'
Ensuite, nous devons exécuter le terminal avec ' pod install '
Selon le firebase Doc, nous devons ajouterimport firebasesur notre contrôleur de vue .mais cela ne résoudra pas votre problème. Vous devrez ajouterimport FirebaseAuth. Cela supprimera l'erreur.
Supprimer cette importation:
importer FirebaseAuth
Ajoutez cette déclaration à la place. Cela a fonctionné pour moi.
importer Firebase
Maintenant, il a été renommé de "FIRAuth" à "Auth"
Solution maintenant, dans Swift 4.2, où il se plaint simplement "Auth" et non pas "FIRAuth" en disant "Utilisation de l'identifiant non résolu Auth":
Notez qu'il existe deux importations distinctes. import Firebase
et import FirebaseAuth
La première suffisait la plupart du temps, mais parfois le compilateur était confus et l'ajout de la seconde version permettait de clarifier les choses.
C'est ça ressemble à c'est maintenant juste "Auth" et non pas "FIRAuth"