В настоящее время я использую Firebase для проверки подлинности электронной почты и пароля. Моя проблема в том, как создать один и тот же UID для раздела «Проверка подлинности электронной почты и пароля» и «База данных». Кажется, у них есть два отдельных UID. Отметим, что я использовал push () для раздела базы данных, чтобы сохранить данные. Для адреса электронной почты и пароля я использовал простую функцию devdoc createemailandpassword.





![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


После использования метода createUserWithEmailAndPassword вы аутентифицируете пользователя, и у пользователя будет для него уникальный идентификатор.
push() генерирует случайный идентификатор в базе данных.
Вам нужно получить userid, а затем добавить его в базу данных:
var user = firebase.auth().currentUser;
var uid,useremail;
if (user != null) {
uid = user.uid;
useremail = user.email;
var database = firebase.database();
database.ref().child("users").child(uid).set({
email:useremail
});
}
подробнее здесь:
https://firebase.google.com/docs/auth/web/manage-users
https://firebase.google.com/docs/database/web/read-and-write
UID на панели Auth генерируется Firebase после аутентификации, когда вы получаете его в обратном вызове, сохраните «пользовательский» словарь под этим UID в узле «Пользователи». Я не уверен, какой язык программирования вы используете, но в iOS (swift) это будет выглядеть примерно так. (Возможно, это не идеально, но вы должны уловить идею).
Auth.auth().signIn(with: credential) { (user, error) in
//Check that there's no error and grab the user.uid property and call the below function after creating a user dictionary
})
func registerNewUserInDatabase(dictionary: Dictionary<String, Any>, uid: String) {
userRef.child(uid).updateChildValues(dictionary)
}