2017-12-30 14 views
0

Hey Leute, ich versuche hier zwei Dinge: - versuche ein neues Konto zu erstellen und versuche einen Bildschirm wie den zu öffnen nach dem Login, aber es zeigt "email exist exist error".UserInfo = {NSLocalizedDescription = Die E-Mail-Adresse wird bereits von einem anderen Konto benutzt., Error_name = ERROR_EMAIL_ALREADY_IN_USE}

@IBAction func CreateAcccountButton (_ Absender: ANYOBJECT) {

guard let eventInterest = textBox.text,let email = EmailTestfield.text, let password = PasswordTestfield.text, let name = UsernameTestfield.text else { 
    print("Form is not valid") 
    return 
} 

Auth.auth() create (withEmail. Email, Passwort: Passwort, Fertigstellung: {(Benutzer, Fehler) in

if let error = error { 
     print(error) 
     return 
    } 

    guard let uid = user?.uid else { 
     return 
    } 

    //successfully authenticated user 
    let imageName = UUID().uuidString 
    let storageRef = Storage.storage().reference().child("profile_images").child("\(imageName).png") 

    if let uploadData = UIImagePNGRepresentation(self.Profilepicture.image!) { 
     storageRef.putData(uploadData, metadata: nil, completion: { (metadata, error) in 

      if let error = error { 
       print(error) 
       return 
      } 
      print (metadata) 
      // let downloadURL = metadata?.downloadURL() 
      // print("fuckin URL ", downloadURL) 

      if let Profilepictureurl = metadata?.downloadURL()?.absoluteString { 
      let values = ["name": name, "email": email,"EventInterest":eventInterest,"Password":password,"Profilepictureurl": Profilepictureurl ] 
       let user = User(dictionary: values as [String : AnyObject]) 
       let customViewController = MessagesController() 
       customViewController.setupNavBarWithUser(user) 
       customViewController.fetchUserAndSetupNavBarTitle() 
      // customViewController.navigationItem.title = values["name"] as? String 
       self.dismiss(animated: true, completion: nil) 
       self.registeruserintoDb(uid,values: values as [String : AnyObject]) 


      } 
     }) 
    } 
} 
) 
} 
fileprivate func registeruserintoDb(_ uid: String, values: [String: AnyObject]) { 
    let ref = Database.database().reference() 
    let usersReference = ref.child("users").child(uid) 

    usersReference.updateChildValues(values, withCompletionBlock: { (err, ref) in 

     if err != nil { 
      print(err!) 
      return 

     } 



    }) 
} 

Antwort

0

Es ist genau das, was der Fehler sagt, haben Sie bereits mit dieser E-Mail einen Benutzer haben. Anstatt die auth.signIn method verwenden und für currently signed in users überprüfen.

+0

ja SUPERCILEX aber wo kann ich verwenden auth.SignIn, da ich beide Sachen machen möchte: create account und signIn. –

+0

Siehe meine aktualisierte Antwort. Überprüfen Sie, ob der aktuelle Benutzer null ist oder nicht. – SUPERCILEX

Verwandte Themen