2017-09-28 2 views
0

Ich versuche, ein Ereignis durch die eindeutige ID des Benutzers abzufragen, aber es wird nichts zurückgeben. Hier ist mein Code für die Abfrage:Android FIrebase-Abfrage nach Wert funktioniert nicht

Query events = mDatabaseEvents.orderByValue().equalTo("user1"); 

und hier ist meine Firebase Datenbank-Struktur:

events: { 
    -event1: { 
    1: user1, 
    2: user2, 
    3: user3, 
}, 
    -event2: { 
    1: user4, 
    2: user5, 
    3: user1, 
}, 

Ich glaube es nicht funktioniert, weil die Daten durch einen hashmap gesetzt, so „user1“ kann nicht sein, immer an der gleichen Stelle in jeder Veranstaltung. Wie gehe ich vor, um dieses Problem zu beheben? Danke

+0

Bitte teilen Sie den Code, den Sie bisher versucht, und posten Sie Ihre Feuerbasis Datenbank Struktur. –

+0

Nichts an Ihrem aktuellen Code macht tatsächlich etwas mit der Firebase-Datenbank. Es definiert lediglich eine Abfrage. Wenn Sie die übereinstimmenden Elemente aus der Datenbank abrufen möchten, müssen Sie [Hörer anhängen] (https://firebase.google.com/docs/database/android/lists-of-data#child-events). –

Antwort

0

Sie müssen einen "addValueEventListener" hinzufügen, um die Daten tatsächlich zu erhalten. Hier ist ein Beispiel mit „orderByKey“, wird es wenig Veränderungen nehme ich an:

Query query = locationComment.orderByKey(); 
query.addValueEventListener(new ValueEventListener() { 
    @Override 
    public void onDataChange(DataSnapshot dataSnapshot) { 
     if (dataSnapshot.getValue() == null) { 
      return; 
     } 
     data.clear(); 
     for (DataSnapshot child : dataSnapshot.getChildren()) { 
      ... 
     } 
     adapter.notifyDataSetChanged(); 
    } 

Sie weitere Informationen hier sehen können: https://stackoverflow.com/a/42430304/5309996

+0

Ich verwende die Abfrage für FirebaseRecyclerAdapter. Wie würde ich das machen? – Spotz

Verwandte Themen