2017-12-30 50 views
0

안녕하세요, 저는 실제로 여기 두 가지를 시도하고 있습니다. - 새 계정을 만들고 어떤 화면이 나타나려고합니까? 로그인 후 "email already exists error"가 표시됩니다.UserInfo = {NSLocalizedDescription = 전자 메일 주소가 이미 다른 계정에서 사용 중입니다. error_name = ERROR_EMAIL_ALREADY_IN_USE}

@IBAction의 FUNC의 CreateAcccountButton (_ 발신자 : 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()는 createUser (withEmail :. 이메일, 비밀 번호 : 완성 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 

     } 



    }) 
} 

답변

0

그것은 정확히 오류가 이미 이메일을 가진 사용자가 있습니다. 대신, auth.signIn method를 사용하고 currently signed in users을 확인합니다.

+0

그래 SUPERCILEX하지만 난 사용할 수있는 말씀 auth.SignIn 나는 두 가지 일을하고 싶습니다 : 계정 생성과 signIn뿐입니다. –

+0

업데이트 된 답변보기 현재 사용자가 null인지 아닌지 확인하십시오. – SUPERCILEX