2016-07-25 4 views
0

Ich bekomme keine Fehlermeldung, aber ich möchte Code anders ausführen.Firebase Android-Methode zum Überprüfen der Existenz von Profilinformationen des Benutzers in Firebase-Datenbank

Wenn Sie folgenden Java-Code überprüfen, läuft es wie Tag: 1> Tag: 2> Tag: 4> Tag: 5> Tag: 3. Ich möchte es wie Tag: 1> Tag: 2> Tag: 3> Tag: 4> Tag: 5.

Grundsätzlich möchte ich überprüfen, ob das Benutzerprofil vorhanden ist oder nicht, bevor eine neue Aktivität gestartet wird. Ich suche nach einer Methode, die nur die Existenz von Kind in der Firebase-Datenbank überprüft. Ich ändere keine Daten von der Datenbank. Also, es sollte nicht onDataChange() -Methode sein. Ich denke, es gab einmal() Methode in alten Firebase, um das gleiche zu tun. Gibt es eine Methode?

Danke

Log.i("Tag:","1"); 

    String userId = getUid(); 

    Log.i("Tag:","2");  
    databaseReference.child("users").child(userId).addListenerForSingleValueEvent(new ValueEventListener() { 
       @Override 
       public void onDataChange(DataSnapshot dataSnapshot) { 

        UserProfile userProfile = dataSnapshot.getValue(UserProfile.class); 

        Log.i("Tag:","3");    

        if (userProfile == null){ 
         //do something 

        } else { 
         //do something 
        } 
       } 

       @Override 
       public void onCancelled(DatabaseError databaseError) { 

       } 
      }); 

    Log.i("Tag:","4"); 
    Log.i("Tag:","5"); 

Antwort

1

Von dem, was ich aus dem Code zu sehen ist:

  • Sie haben bereits die Benutzer-ID des Userprofile
  • Sie überprüfen, ob ein Profil auf, dass bestimmte existiert ID oder nicht.

Nun, um ein Objekt zu schaffen, und ob seine null oder keine Überprüfung ist auf jeden Fall eine Möglichkeit, aber Firebase hat ein vordefiniertes Verfahren zum Überprüfen, ob die Daten auf diesem speziellen Knoten oder existieren:

dataSnapshot.exists()

Gibt True zurück, wenn dieser DataSnapshot Daten enthält. Es ist leicht effizienter als die Verwendung von snapshot.val()! == null.

Dies ist, was die offiziellen Dokumente erwähnen.

+0

Vielen Dank für die Lösung. Ich habe DataSnapshot ausprobiert. Ich denke, ich habe beim Definieren oder Initialisieren von dataSnapshot einen Fehler gemacht. Bitte hilf mir dabei. –

Verwandte Themen