Ich habe die Datenbank meiner Android App von Realm zu Firebase gewechselt. Ist es möglich, eine Datenbankreferenz zu filtern und sie dann innerhalb des FirebaseRecyclerAdapter zu verwenden?Verwenden Sie gefilterte Datenbankreferenz in RecyclerviewAdapter
Hier einige Beispiel:
DatabaseReference adapterRef = someReference.orderByChild("country").equalTo("Test").getRef();
MyAdapter adapter = new MyAdapter(this, adapterRef);
Innerhalb meiner Recycler Ansicht werden alle Daten angezeigt, was bedeutet, dass die Filterung nicht funktioniert. Auf der anderen Seite, wenn ich wie folgt vorgehen:
someReference.orderByChild("country").equalTo("test").addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot snapshot : dataSnapshot.getChildren()) {
Log.v(TAG, "Value"+snapshot);
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
Log.w(TAG, "loadPost:onCancelled", databaseError.toException());
}
});
Ich kann deutlich sehen, dass die Filterung funktioniert und nur Produkte mit Land gleich zu „Test“ angezeigt werden.
Hallo Frank. Ich verwende den 'FirebaseRecyclerAdapter' und es erwartet eine' DatabaseReference'. – edmond
Die eine, die ich geschrieben habe, akzeptiert auch eine Abfrage. Siehe https://github.com/firebase/FirebaseUI-Android/blob/master/database/src/main/java/com/firebase/ui/database/FirebaseRecyclerAdapter.java#L127. Wenn Sie einen anderen Adapter als Basis verwenden, geben Sie bitte einen Link dazu an. –
Hallo Frank. Gute Antwort. DatabaseReference ist in der Tat eine Unterklasse von Query. Das habe ich gar nicht bemerkt. – edmond