Firebase数据库和Firebase身份validation中的不同UID

目前我正在尝试获取用户数据,但存在一个巨大的问题。 当前登录用户的uid与我数据库中同一用户的UID不同。 这是两个你可以看到它的图像。 图像下面是我在Swift中的SignUpController中的代码。 我需要它与数据库和auth相同。 感谢帮助。

验证

这是第二个

数据库

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 } } 

我把一些代码移到了正确的位置。 此外,您更新了一个名为“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的变量来自旧帐户。