2017-12-30 27 views
0

実際に私はここで2つのことを試しています: - 新しいアカウントを作成しようとして、ログイン後に "email already exists error"と表示されています。UserInfo = {NSLocalizedDescription =電子メールアドレスはすでに別のアカウントで使用されていますが、error_name = ERROR_EMAIL_ALREADY_IN_USE}

CreateAcccountButton(_送信者:ANYOBJECT)FUNC @IBAction

における{(ユーザー、エラー):{

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()のcreateUser(withEmail:電子メール、パスワード:パスワード、完了

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 

     } 



    }) 
} 

答えて

0

それはええSUPERCILEX

+0

。その代わり、auth.signIn methodを使用してcurrently signed in usersを確認してください。あなたはすでにその電子メールでユーザーを持って、エラーが言うまさにだが、私は使用することができますauth.SignIn私は両方のことをやってみたいと思う:アカウントの作成とサインイン。 –

+0

私の更新された回答を参照してください。現在のユーザーがnullであるかどうかを確認します。 – SUPERCILEX

関連する問題