L'utilisation de non identificateur 'FIRAuth' (Swift 2, Firebase 3.x)
La mise à jour vers la nouvelle firebase. Créé un nouveau compte VC et tout fonctionnait bien en termes de pas d'erreurs.
En essayant de reproduire ce nouveau tutoriel: https://codelabs.developers.google.com/codelabs/firebase-ios-swift/index.html?index=..%2F..%2Findex#0
Maintenant, tout d'un coup, j'obtiens le message d'erreur Utilisation de suspens identificateur 'FIRAuth" partout dans mon CR.
J'ai essayé de ré-installer les gousses de fichier et n'ont pas eu de chance, il semble que, parfois, s'il ajouter "importer Firebase" puis supprimer l'application de la compilation, il semble y avoir ni rime ni raison pour laquelle cela fonctionne parfois et d'autres fois il n'a pas d':
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 a une idée pourquoi cela serait-il se passer?
- voir ce lien, il vous permet de stackoverflow.com/questions/34950777/...
- Grâce Anbu, a juste pris un coup d'oeil à cette question et mon SignInViewController était déjà correctement connecté à la cible. Je suis à une perte pour quoi d'autre, le problème peut être.
Vous devez vous connecter pour publier un commentaire.
Pour les futurs lecteurs:
Veillez à inclure les éléments suivants dans votre
Podfile
:pod 'Firebase/Auth'
Après l'installation, les gousses, utilisation:
import FirebaseAuth
C'est ce que résolu pour moi.
J'ai mis à jour Cocoapods et a couru pod mise à jour et il fixe toutes mes questions
Mis à jour 2016/12/26 avec
Swift 3
etFirebase 3.11.0
Ajouter à Podfile
À votre place, vous devez utiliser l'Authentification, juste
Nettoyer et reconstruire, vous pourrez effacer l'erreur.
Cette solution est appelée à partir de Google.
https://firebase.google.com/docs/auth/ios/password-auth
Vous devez ajouter pod "Firebase/Auth' sur pod fichier, importer Firebase et FirebaseAuth à votre contrôleur, maintenant d'utiliser Auth n'est pas
FIRAuth.auth()
, estAuth.auth().signInAnonymously
et le travail est très bien.Ajouter "importer Firebase" et appuyez sur cmd + B
Lors de l'utilisation de Firebase dans un UIViewController je assurez-vous d'importer Firebase et après que je l'ai nettoyer le cache/build (cmd + maj + k) et ensuite construire (cmd + b).
Semble fonctionner mais je dois refaire le processus à chaque fois que je construis.
MODIFIER
Si cela ne fonctionne pas la première nettoyer, il suffit de garder sur le nettoyage jusqu'à ce qu'il fait. Pas la solution parfaite, mais il fonctionne.
nous avons d'abord besoin d'ajouter la gousse de firebase Auth dans podfile
pod "Firebase/Auth'
Alors nous avons besoin pour exécuter le terminal avec " pod installer'
Selon la firebase Doc,nous avons besoin d'ajouter importation firebase sur notre viewcontroller .mais il ne résoudra pas votre problème.vous devez ajouter importation FirebaseAuth.Cela permettra d'éliminer l'erreur.
Supprimer cette importation:
Ajouter cette instruction. Cela a fonctionné pour moi.
Maintenant, il a été renommé en "FIRAuth" "Auth"
Il ressemble il est maintenant juste "Auth" et non pas "FIRAuth"
Solution maintenant, dans Swift 4.2, où il se plaint tout simplement "Auth" et non pas "FIRAuth" en disant: "l'Utilisation de suspens identificateur d'Authentification":
Remarque il y a deux distincts des importations.
import Firebase
etimport FirebaseAuth
La première était suffisant la plupart du temps, mais parfois, le compilateur devient confus et l'ajout de la deuxième version permet de clarifier les choses.
MeasurementHelper.sendLoginEvent()
AppStateis un unidetified