2017-08-11 4 views
0

Ich benutze Firebase und angularfire, um eine Liste von Benutzern zu erstellen. Die Datenbankstruktur ist dies:Überprüfen Sie, ob der Benutzer in der Datenbank vorhanden ist, bevor Sie einen neuen erstellen

enter image description here

Ich brauche zu suchen, wenn ein Benutzername vorhanden ist, bevor eine neue erstellt. Das Problem ist, dass ich automatisch generierte IDs benutze und nicht meine eigenen erzeuge.

Wie kann ich suchen, wenn ein bestimmter Spitzname existiert? Vielen Dank!

+0

Dies wurde bereits recht häufig behandelt: https://www.google.com/search?q=angularfire+check+if+username+exists Hast du schon etwas probiert? –

+0

Ich bevorzuge soziale Interaktion – handsome

Antwort

2

Wenn ich in dieser Situation bin, werde ich jeden Nickname überprüfen.

Unten ist ein einfaches Beispiel.

Eigentlich sollten Sie alle Nicknames in Array und überprüfen Sie es zuletzt.

DatabaseReference myRef = FirebaseDatabase.getInstance().getReference(); 
DatabaseReference def_nickname= myRef.child("user"); 
String input_nickname = "mickey"; 


ValueEventListener listener_nickname = new ValueEventListener() { 
    @Override 
    public void onDataChange(DataSnapshot dataSnapshot) { 
      for (DataSnapshot p : dataSnapshot.getChildren()) { 
       String nickname = p.child("nickname").getValue(String.class); 
       if (input_nickname.equals(nickname)) { 
         [do something]} else { [do something]} 
      } 

    @Override 
    public void onCancelled(DatabaseError databaseError) { 

    }; 
def_nickname.addListenerForSingleValueEvent(listener_nickname); 
0

Wenn Sie sicher sind, über Ihre eigene ‚ID‘ zu erstellen, können Sie tun:

userReference.child("otherschilds").child("nickname").setValue("mickey"); 

aber derzeit sind eine gute Praxis.

Verwandte Themen