Ich arbeite derzeit an einem Android-Projekt von FIREBASE unterstützt. Wenn ich eine SQL-Abfrage ähnlich der select-Anweisung durchführe, erhalte ich das gewünschte Ergebnis nicht.Android: Suchanfrage in Firebase
My Firebase Datenbank sieht wie folgt aus:
Der Code, den ich verwendet habe, ist wie folgt:
ref = FirebaseDatabase.getInstance().getReference().child("DiscussionForumPosts");
ref.orderByChild("discussionName").equalTo(discussion_name_from_bundle)
.addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
DiscussionPostReadModel model = dataSnapshot.getValue(DiscussionPostReadModel.class);
}
//other predefined methods
}
discussion_name_bundle
ist eine String-Variable, die ich aus der vorherigen Aktivität erhalten.
Mein sieht DiscussionPostReadModel.java
wie folgt aus:
public class DiscussionPostReadModel {
public String discussionName, discussionMessage, userName;
public DiscussionPostReadModel(){}
public DiscussionPostReadModel(String discussionName, String discussionMessage, String userName){
this.discussionName = discussionName;
this.discussionMessage = discussionMessage;
this.userName = userName;
}
public String getDiscussionName(){
return discussionName;
}
public String getDiscussionMessage(){
return discussionMessage;
}
public String getUserName(){
return userName;
}
}
Ich brauche eigentlich das System nur die Knoten discussionName gleich der Variable discussion_name_from_bundle
dessen zu holen. stattdessen gibt es mir alle Kinder zurück, die in discussionForumPost in der FIREBASE-Datenbank gefunden werden.
Bitte helfen Sie mir die Funktionalität des Abrufs nur der Kinder, die die Gleichheitsbedingung erfüllt. Vielen Dank im Voraus.