Как вы предотвращаете дублирование пользовательских свойств в Firebase?
Я использую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 сохранять записи, если свойства внутри одного объекта не являются уникальными для свойств внутри другого объекта?