Я использую FirebaseSimpleLogin
для создания пользователей и проверки подлинности.
Когда я пытаюсь создать нового пользователя с простым входом с помощью метода $createUser()
, firebase не создаст пользователя, если адрес электронной почты уже был использован. Тем не менее, я также использую $set()
для сохранения моих созданных пользователей в свою firebase после их создания, и я использую user.uid
в качестве ключа. Когда вы пытаетесь записать в базу данных, firebase сохранит запись, даже если имя пользователя не уникально, поскольку для простого входа требуется только электронная почта и пароль. Итак, как я могу подтвердить, что имя пользователя является уникальным, если оно не используется в качестве ключа к пользовательскому объекту?
Я создаю новых пользователей следующим образом:
$scope.createUser = function() {
$scope.auth.$createUser('[email protected]', 'password').then(function(user, err) {
if (!err) {
ref.child('users/' + user.uid).set({
email: user.email,
username: user.username
});
console.log("success!");
}else{
console.log(err.message);
}
});
}
И мой пользовательский объект выглядит следующим образом:
{
"users" : {
"simplelogin:28" : {
"email" : "[email protected]",
"username" : "jtrinker"
},
"simplelogin:30" : {
"email" : "[email protected]",
"username" : "jtrinker"
}
}
}
}
Мне нужно использовать uid как ключ для каждого пользователя, но мне все равно нужно, чтобы имя пользователя было уникальным.
Как я могу запретить firebase сохранять записи, если свойства внутри одного объекта не уникальны для свойств внутри другого объекта?