Wie vermeide ich doppelte Benutzereigenschaften in Firebase?

Ich benutzeFirebaseSimpleLogin Benutzer erstellen und Authentifizierung behandeln.

Wenn ich versuche, einen neuen Benutzer mit einfachem Login über das zu erstellen$createUser() Bei dieser Methode erstellt firebase den Benutzer nicht, wenn die E-Mail-Adresse bereits verwendet wurde. Ich benutze aber auch$set() um meine erstellten Benutzer in meiner Firebase zu speichern, nachdem ich sie erstellt habe und sie verwendeuser.uid als Schlüssel. Beim Versuch, in die Datenbank zu schreiben, speichert firebase den Datensatz, auch wenn der Benutzername nicht eindeutig ist, da für die einfache Anmeldung nur E-Mail-Adresse und Kennwort erforderlich sind. Wie kann ich einen Benutzernamen als eindeutig validieren, wenn er nicht als Schlüssel für das Benutzerobjekt verwendet wird?

Ich erstelle neue Benutzer wie folgt:

$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);
    }
  });
}

Und mein Benutzerobjekt sieht so aus:

{
  "users" : {
    "simplelogin:28" : {
      "email" : "[email protected]",
      "username" : "jtrinker"
    },
    "simplelogin:30" : {
      "email" : "[email protected]",
      "username" : "jtrinker"
    }
  }
}

}

Ich muss die UID als Schlüssel für jeden Benutzer verwenden, aber der Benutzername muss immer noch eindeutig sein.

Wie kann ich verhindern, dass Firebase Datensätze speichert, wenn Eigenschaften innerhalb eines Objekts nicht für Eigenschaften innerhalb eines anderen Objekts eindeutig sind?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage