【发布时间】:2021-11-01 06:06:39
【问题描述】:
我正在尝试使用以下代码从我的数据库中过滤数据:
fdb.orderByChild("title").startAt(searchquery).endAt(searchquery+"\uf8ff").addValueEventListener(valuelistener2);
我的数据库是这样的:
"g12" : {
"Books" : {
"-Mi_He4vHXOuKHNL7yeU" : {
"title" : "Technical Sciences P1"
},
"-Mi_He50tUPTN9XDiVow" : {
"title" : "Life Sciences"
},
"-Mi_He51dhQfl3RAjysQ" : {
"title" : "Technical Sciences P2"
}}
虽然代码有效,但它只返回与查询匹配的第一个值,即使匹配也不会获取其余数据。
如果我将“T”作为搜索查询,我只会得到第一个标题“技术科学 P1”,而不会用 P2 得到另一个标题
(抱歉,问题标题含糊而常见,只是我一直在寻找解决方案这么久)
【问题讨论】:
-
您的代码匹配所有
title以searchquery值开头的节点。如果您没有看到您期望的结果,请编辑您的问题以包括:1)您用于处理结果的valuelistener22)我们可以用来重现问题的searchquery的值 3)您希望返回的fdb处的 JSON(作为文本,请不要截图)。您可以通过单击Firebase Database console 上溢出菜单 (⠇) 中的“导出 JSON”链接来获取此信息。
标签: java android firebase firebase-realtime-database google-cloud-platform