使用Firebase自动完成

 书友72177273 发布于 2023-01-16 13:43

如何使用Firebase进行基本的自动完成/文本预览?

例如,想象一下由Firebase支持的博客,其中博主可以使用标签标记帖子.由于博主正在标记新帖子,如果他们能够看到所有当前存在的标签与他们输入的前几次击键相匹配将会很有帮助.因此,如果"博客","黑色","炽热的马鞍"和"斗牛犬"都是标签,如果用户输入"bl",他们会得到前三个而不是"斗牛犬".

我最初的想法是我们可以使用标记的优先级设置标记,并使用startAt,这样我们的查询看起来像:

fb.child('tags').startAt('bl').limitToFirst(5).once('value', function(snap) {
  console.log(snap.val()) 
});

但这也会使"斗牛犬"成为结果之一(不是世界末日,也不是最好的).使用startAt('bl').endAt('bl')不返回任何结果.还有另一种方法来实现这一目标吗?

(我知道有一个选择是我们可以使用搜索服务器,比如ElasticSearch,请参阅https://www.firebase.com/blog/2014-01-02-queries-part-two.html - 但我希望尽可能多地保留在Firebase中.)

编辑

正如加藤所说,这是一个具体的例子.我们有20,000个用户,其名称存储如下:

/users/$userId/name

通常,用户将按名称查找其他用户.当用户正在查找他们的好友时,我们想要一个下拉列表来填充名称以搜索者输入的字母开头的用户列表.因此,如果我输入"Ja",我会期望在下拉列表中看到"Jake Heller","jake gyllenhaal","Jack Donaghy"等.

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有