1

現在、私はユーザデータを取得しようとしていますが、大きな問題が1つあります。現在ログインしているユーザーのuidは、データベース内の同じユーザーのUIDと異なります。あなたがそれを見ることができる2つの画像がここにあります。画像の下にはSwiftのSignUpControllerのコードがあります。私はそれがデータベースと認証のために同じである必要があります。手伝ってくれてありがとう。FirebaseデータベースとFirebase認証で異なるUID

Auth

そして、ここで私が正しい場所にいくつかのコードを動かす1

Database

func emailSingUp(){ 
    guard let email = emailTextField.text, let password = passwordTextField.text,let name = nameTextField.text else { 
     print("unsuccessful signup") 
     return 
    } 
    Auth.auth().createUser(withEmail: email, password: password) { (user, error) in 
     if error != nil{ 
      print(error!) 
      return 
     } 
    } 
    guard let uid = Auth.auth().currentUser?.uid else{ 
     print("There is no UID to access") 
     return 
    } 

    let ref = Database.database().reference(fromURL: "https://yourapp.firebaseio.com/") 
    let userReference = ref.child("users").child(uid) 

    let values = ["name":name, "email":email] 
    userReference.updateChildValues(values) { (err, ref) in 
     if err != nil{ 
      print(err!) 
      return 
     } 
    } 

答えて

0

秒です。また、 "uid"という値を更新しますが、その参照はありません。私は以下のコードがうまくいくことを願う。

func emailSingUp(){ 
    guard let email = emailTextField.text, let password = passwordTextField.text,let name = nameTextField.text else { 
     print("unsuccessful signup") 
     return 
    } 
    Auth.auth().createUser(withEmail: email, password: password) { (user, error) in 
     if error != nil{ 
      print(error!) 
      return 
     }else{ 
let values = ["name":name, "email":email] 
Database.database().reference().child("users").child("\(Auth.auth().currentUser!.uid)").updateChildValues(values) { (err, ref) in 
    if err != nil{ 
     print(err!) 
     return 
    } 
    } 

この場合、uidという変数は古いアカウントからのものです。

+0

ヨップ、ありがとう、たくさんの男。私はいくつかのコードブロックの置き忘れを発見しませんでした。もう一度ありがとう –

+0

@ JasonKrowl :)私はまったく同じ問題を前にhahaだった。お力になれて、嬉しいです! –