gpt4 book ai didi

Android - Firebase 查询 startAt 未按预期工作

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:01:53 28 4
gpt4 key购买 nike

我正在开发一个使用 Firebase 作为后端的 Android 应用程序。我是 Firebase 的新手,遇到了一个问题,问题是当我尝试使用 startAt 查询搜索记录时,它返回的结果不是以我输入的关键字开头。

这是数据集

itemname
-KK8vI8A5BZZp3Xo3FpA
name: "abc"
-KK8w3uoJdJ0hBSrq0CS
name: "test"
-KKAC1o9Vazyg9JLtDoQ
name: "dude"

这是代码 fragment

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());
}
}

因此,当我搜索 abc 时,响应还包括 test。也许我做错了什么或者我走错了路。谁能给我指出正确的方向。

P.S 我正在尝试使用 AutocompleteTextView 来搜索项目。

谢谢

最佳答案

当您调用 orderByChild("name").startAt("abc") 时,数据库按名称属性对所有项目进行排序,跳过 abc 之前的项目,然后全部归还。

如果您只想返回匹配 abc 的 child ,您可以使用 equalTo():

query = firebase.child(Constants.KEY_ITEM_NAME).orderByChild("name").equalTo("abc");

关于Android - Firebase 查询 startAt 未按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37798366/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com