2017-08-11 1 views
0

J'utilise firebase et angularfire pour créer une liste d'utilisateurs. La structure de base de données est la suivante:Vérifiez si l'utilisateur existe dans la base de données avant de créer un nouveau

enter image description here

je dois rechercher si un nom d'utilisateur existe avant de créer un nouveau. Le problème est que j'utilise des identifiants générés automatiquement et ne crée pas le mien.

Comment puis-je rechercher si un pseudonyme existe? Merci!

+0

Cela a été couvert assez souvent déjà: https://www.google.com/search?q=angularfire+check+if+username+exists Avez-vous déjà essayé quelque chose? –

+0

Je préfère l'interaction sociale – handsome

Répondre

2

Si je suis dans cette situation, je vais vérifier tous les surnoms.

Voici un exemple simple.

En fait, vous devriez mettre tous les pseudonymes dans le tableau et le vérifier au dernier.

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

Si vous êtes sûr de créer votre propre « ID », vous pouvez le faire:

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

mais ne sont une bonne pratique.