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

Ответы на вопрос(2)

Ваш ответ на вопрос