我正在开发一个“typeahead”类型的函数,它将使用当前键入的文本检查我的数据库,以提供使用 Felgo 的用户的搜索建议。
至于不搜索每个条目,我希望使用startAt
andlimitTo
来减少数据使用。
但是,当应用startAt
我的搜索只返回未定义时,我尝试通过将我的 startAt 从变量更改为显式数据来对此进行测试,但这仍然只返回未定义。
我的功能如下:
function searchUsers(searchString) {
db.getValue("public/nameList/", {
orderByChild: true,
startAt: searchString, //searchString is a variable with my .currentText to search.
limitToFirst: 10,
}, function(success, key, value) {
if(success) {
searchArr = []
searchArr = value
console.debug("Read user value for key", key, "from DB:", value)
}
})
}
我也尝试过var searchString
通过JSON.stringify(searchString)
并返回未定义!
完全删除startAt:
查询会按预期返回整个结果nameList
,但无论我如何尝试实现startAt
它总是返回未定义。
nameList
我的JSON示例是:
nameList: {
"EddieLaw245" : 530343772383,
"EddieLawrence91" : 530343772385,
"EdwardL91" : 530343772386,
"EdwardLaw" : 530343772384,
"Edwardlawrence91" : 530343772380,
"JoBrownLondon" : 530343772381,
"KatiePrescottHair" : 543592635596,
"Tracey-Sweeting" : 530343772382
}
因此,对于上面的示例,当我键入E
时,它应该删除最后 3 个条目,依此类推。