2016-06-07 21 views
1

Ich verwende Firebase Database 9.0.2 für meine App.Firebase Android Query gibt kein Ergebnis zurück

Die Datenbankabfrage funktioniert innerhalb der nächsten Minuten nach einer Neuinstallation ordnungsgemäß. Wenn ich die App jedoch nach einigen Minuten erneut öffne, geben beide "onDataChange" und "onCancelled" keine Ergebnisse zurück. Die Abfrage funktioniert erneut, wenn ich die App neu installiere oder App-Daten lösche.

Wie ich die Abfrage ausführen:

Query query = FirebaseDatabase.getInstance().getReference().child("listings").child(id); 
     query.addValueEventListener(new ValueEventListener() { 
      @Override 
      public void onDataChange(DataSnapshot dataSnapshot) { 
       //do something 
      } 

      @Override 
      public void onCancelled(DatabaseError databaseError) { 
       //do something 
      } 
     }); 

Hier ist meine Datenbank-Regel:

{ 
    "rules": { 
    ".read": true, 
    ".write" : true 
    } 
} 

Jede Idee, warum dies geschieht?

+0

Ihren Code der Datenbank zur Abfrage? – Shubhank

+0

@Shubhank, aktualisiert mit meinem Abfragecode –

+0

in welcher Funktion Sie dies nennen> – Shubhank

Antwort

2

Sie könnten addValueEventListener verwendet haben, aber es wird aufgerufen, wenn es Änderungen in diesem Wert gibt. Wenn Sie Daten aus der Datenbank lesen möchten, müssen Sie addListenerForSingleValueEvent verwenden.

mDatabase.child("users").child("childKey").addListenerForSingleValueEvent(
    new ValueEventListener() { 
     @Override 
     public void onDataChange(DataSnapshot dataSnapshot) { 



     } 

     @Override 
     public void onCancelled(DatabaseError databaseError) { 
      Log.w(TAG, "getUser:onCancelled", databaseError.toException()); 
     } 
    }); 

siehe this für mehr

+0

Hilfreiche vielen Dank! –

Verwandte Themen