2017-02-01 4 views
0

Ich arbeite an Google Firebase, und ich möchte gespeicherte Daten abrufen, aber das Ergebnis ist null.Firebase gibt null statt Daten zurück

Wo liege ich falsch? Unten ist mein Code. Danke im Voraus!

try{ 
     mDatabase = FirebaseDatabase.getInstance().getReference(); 
     myBal.setText("0"); 
     mDatabase.child("users").child(mUserId).child("claim").addListenerForSingleValueEvent(new ValueEventListener() { 
      @Override 
      public void onDataChange(DataSnapshot dataSnapshot) { 
       String amount = dataSnapshot.child("satoshi").getValue(String.class); 
       myBal.setText("satoshi: "+amount); 
      } 

      @Override 
      public void onCancelled(DatabaseError databaseError) { 

      } 
     }); 

Unten ist meine Datenbankstruktur ...

enter image description here

Antwort

2

Das Problem ist, dass Sie nicht wirklich die "Satoshi" Knoten erreicht.

Die ValueEventListener auf dem Knoten "Anspruch" gibt eine DataSnapshot zurück, die den Knoten "Anspruch" darstellt. Es gibt kein "Satoshi" -Kind auf dem "Claim" -Knoten, das einzige Kind ist "-Kbvm .....".

Sie müssten entweder bereits den Schlüssel "-Kbvm ....." haben und damit den Pfad zu "satoshi" richtig verfolgen oder einen ChildEventListener auf dem Knoten "claim" verwenden, um die untergeordneten Elemente zu erhalten "behaupten", anstatt sich selbst "zu beanspruchen".

+1

Danke! Es hat so gut funktioniert. –