2017-07-10 6 views
0

Wie Sie im Code sehen, habe ich getValue() verwendet, um einen Wert aus meiner Datenbank zu erhalten. Aber wenn ich diesen Wert bei einer private static int Variablen ("Version" genannt) speichern möchte, ist nichts passiert.Den Wert aus der Firebase-Datenbank nicht erhalten

mDataBaseVersion =FirebaseDatabase.getInstance(link).getReference().getRef().child("version/number"); 

    mDataBaseVersion.addValueEventListener(new ValueEventListener() { 
     @Override 
     public void onDataChange(DataSnapshot dataSnapshot) { 

       setVersion((Integer) dataSnapshot.getValue()); 

     } 

     @Override 
     public void onCancelled(DatabaseError databaseError) { 
      Toast.makeText(getApplicationContext(),"Error at version check",Toast.LENGTH_LONG).show(); 

     } 
    }); 

Die "Version" Setzer:

public void setVersion(int ver) 
{ 
    version=ver; 
} 

Und der Teil des JSON, was ich erreichen sollte:

{ 
"version" : { 
     "number" : 2 
     } 
} 

Ich habe versucht, das Problem selbst zu lösen, aber Ich kann wirklich nicht verstehen, was vor sich geht.

Ich benutze die gleiche Struktur, um die anderen Elemente von meinem DB (und das funktioniert).

Weiß jemand, warum passiert es?

+0

Bitte senden Sie den eigentlichen Code, kein Bild von ihm. Bitte geben Sie uns auch Ihr [minimales, vollständiges und überprüfbares Beispiel] (https://stackoverflow.com/help/mcve) Ihres Problems zusammen mit Ihren Erwartungen. –

+0

Ich habe den Beitrag bearbeitet. Ich hoffe, dass hilft, das Problem zu verstehen. –

Antwort

0

Bitte verwenden Sie diesen Code:

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference(); 
DatabaseReference versionRef = rootRef.child("version"); 
ValueEventListener eventListener = new ValueEventListener() { 
    @Override 
    public void onDataChange(DataSnapshot dataSnapshot) { 
     Integer number = dataSnapshot.child("number").getValue(Integer.class); 
     Log.d("TAG", number); 
    } 

    @Override 
    public void onCancelled(DatabaseError databaseError) {} 
}; 
versionRef.addListenerForSingleValueEvent(eventListener); 
+0

Danke! Das hat mir sehr geholfen. –

Verwandte Themen