2017-02-18 15 views
0

私がRegisterを選択すると、データはFirebase認証に送信されますが、データベースには格納されません。誰が間違っているのか教えてもらえますか?その後Swiftの登録ユーザーをデータベースに書き込む方法は?

self.ref = FIRDatabase.database().reference()

:あなたは右のそれをやっていない

func handleRegister(){ 
     // Validation 
     guard let email = emailTextField.text, let password = PassTextField.text, let name = nameTextField.text 
     else{ 
      print("Please provide an Email and Password") 
      return 
     } 

     FIRAuth.auth()?.createUser(withEmail: email, password: password, completion: { (user: FIRUser?, error) in 

      if error != nil { 
       print(error!) 
       return 
      } 
      // Successfully authenticated user 
      // Saving Data to the Database 
      let ref = FIRDatabase.database().reference(fromURL: "https://chat-47e5b.firebaseio.com/") 
      let values = ["name": name, "email": email] 
      ref.updateChildValues(values, withCompletionBlock: { (err,ref) 
       in 

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

       print("Saved user successfully into Firebase") 
      }) 
     }) 
} 

答えて

2

、あなたは最初のDBへの参照を取得する必要がありますサイドノートとして

let values = ["name": name, "email": email] 
self.ref.child("users").child(user.uid).setValue(values) 

を、これを変換します。

if error != nil { 
    print(error!) 
    return 
} 

これまで:

guard let error = error else { 
    print(error) 
    return 
} 
関連する問題