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?

questionAnswers(2)

yourAnswerToTheQuestion