Hallo,
in meinem Übungsprogramm wird eine Datenbank genutzt, in der 3 Objekte der Klasse EventModel abgespeichert sind.
Diese haben die Werte string title, location, date, description und key.
Die 3 Objekte:
EventModel event1 = new EventModel("Fasching in der Bürgerhalle", "Frankfurt", "11.11.17", "Faschingsfeier", null);
EventModel event2 = new EventModel("Karneval in Köln", "Köln", "11.11.17", "Die größte Faschingsparty Deutschlands", null);
EventModel event3 = new EventModel("Augsburger Weihnachtsmarkt", "Augsburg", "12.12. - 24.12.17", "Weihnachtsmarkt vor dem Rathaus", null);
Nun soll der Benutzer gezielt nach einem Ort suchen, den er über ein editText eingibt. Beim Buttonclick soll dann in der Datenbank geschaut werden, welche Events in dieser Stadt stattfinden und ausgeben
Der Code für die Suchabfrage:
Das Problem ist nun aber in dieser Zeile
Query searchCity = ref.orderByChild("location").startAt(search);
Wenn ich nun eine Suche durhcführe bekomme ich jedoch falsche Rückgaben. Bei "Frankfurt" erhalte ich sowohl das Event1 als auch 2. Bei "Köln" richtigerweise nur Event2 und bei "Augsburg" alle 3.
Mit equalTo() stimmen die Rückgaben bei allen 3 Begriffen.
Kann sich jemand vorstellen, an was das liegt?
Gruß
Gismodin
in meinem Übungsprogramm wird eine Datenbank genutzt, in der 3 Objekte der Klasse EventModel abgespeichert sind.
Diese haben die Werte string title, location, date, description und key.
Die 3 Objekte:
EventModel event1 = new EventModel("Fasching in der Bürgerhalle", "Frankfurt", "11.11.17", "Faschingsfeier", null);
EventModel event2 = new EventModel("Karneval in Köln", "Köln", "11.11.17", "Die größte Faschingsparty Deutschlands", null);
EventModel event3 = new EventModel("Augsburger Weihnachtsmarkt", "Augsburg", "12.12. - 24.12.17", "Weihnachtsmarkt vor dem Rathaus", null);
Nun soll der Benutzer gezielt nach einem Ort suchen, den er über ein editText eingibt. Beim Buttonclick soll dann in der Datenbank geschaut werden, welche Events in dieser Stadt stattfinden und ausgeben
Der Code für die Suchabfrage:
Code:
public void query(String search){
database = FirebaseDatabase.getInstance();
DatabaseReference ref = database.getReference("events");
Query searchCity = ref.orderByChild("location").startAt(search);
searchCity.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for(DataSnapshot data : dataSnapshot.getChildren()){
EventModel m = data.getValue(EventModel.class);
String s ="Event: " + m.getTitle() + "\n Wann: " + m.getDate() + "\n";
txtShow.append(s);
Log.i("Daten: ", m.getTitle() + " " + m.getDate());
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
public void btnSearchClicked(View view){
String search = String.valueOf(editSearch.getText());
txtShow.setText("");
query(search);
}
Das Problem ist nun aber in dieser Zeile
Query searchCity = ref.orderByChild("location").startAt(search);
Wenn ich nun eine Suche durhcführe bekomme ich jedoch falsche Rückgaben. Bei "Frankfurt" erhalte ich sowohl das Event1 als auch 2. Bei "Köln" richtigerweise nur Event2 und bei "Augsburg" alle 3.
Mit equalTo() stimmen die Rückgaben bei allen 3 Begriffen.
Kann sich jemand vorstellen, an was das liegt?
Gruß
Gismodin