Como você evita propriedades duplicadas do usuário no Firebase?
Estou a usarFirebaseSimpleLogin
para criar usuários e manipular autenticação.
Quando tento criar um novo usuário com login simples por meio do$createUser()
método, o firebase não criará o usuário se o endereço de email já tiver sido usado. No entanto, eu também estou usando$set()
salvar meus usuários criados na minha base de firma depois de criá-los e estar usandouser.uid
como a chave. Ao tentar gravar no banco de dados, o firebase salvará o registro, mesmo que o nome de usuário não seja exclusivo, pois apenas email e senha são necessários para o login simples. Então, como posso validar um nome de usuário para ser exclusivo quando ele não está sendo usado como a chave do objeto de usuário?
Estou criando novos usuários como este:
$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);
}
});
}
E meu objeto de usuário é assim:
{
"users" : {
"simplelogin:28" : {
"email" : "[email protected]",
"username" : "jtrinker"
},
"simplelogin:30" : {
"email" : "[email protected]",
"username" : "jtrinker"
}
}
}
}
Preciso usar o uid como a chave para cada usuário, mas ainda preciso que o nome de usuário seja único.
Como posso impedir que o firebase salve registros se as propriedades em um objeto não são exclusivas das propriedades em um objeto diferente?