Max*_*Max 7 android firebase firebase-realtime-database
我正在开发一个使用Firebase作为后端的Android应用.我是Firebase的新手并遇到了问题,问题是当我尝试使用startAt查询搜索记录时,它会返回不以我输入的关键字开头的结果.
这是数据集
itemname
-KK8vI8A5BZZp3Xo3FpA
name: "abc"
-KK8w3uoJdJ0hBSrq0CS
name: "test"
-KKAC1o9Vazyg9JLtDoQ
name: "dude"
Run Code Online (Sandbox Code Playgroud)
这是代码snippit
Query query = firebase.child(Constants.KEY_ITEM_NAME).orderByChild("name").startAt("abc");
query.addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
Iterator<DataSnapshot> i = dataSnapshot.getChildren().iterator();
while (i.hasNext()) {
DataSnapshot d = i.next();
LOG(d.getKey(), d.getValue().toString());
}
}
Run Code Online (Sandbox Code Playgroud)
所以当我搜索abc响应时也包括test.也许我做错了什么或者我做错了路.有谁能指出我正确的方向.
PS我正在尝试使用AutocompleteTextView搜索项目.
谢谢
当您调用orderByChild("name").startAt("abc")数据库按名称属性对所有项目进行排序时,先跳过这些项目abc,然后将它们全部返回.
如果您只想找回匹配的孩子abc,您可以使用equalTo():
query = firebase.child(Constants.KEY_ITEM_NAME).orderByChild("name").equalTo("abc");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7240 次 |
| 最近记录: |