Firestore:查询与搜索词匹配或相似的名称

2023-12-04

我有一个用户列表,其姓名位于 Firestore 数据库中。我想要实现的是让用户能够搜索和找到其他用户。我的问题是:

Query query = db.collection("users").whereEqualTo("name", searchTerm);
FirestoreRecyclerOptions<UserObject> response = new FirestoreRecyclerOptions.Builder<UserObject>()
                .setQuery(query, UserObject.class)
                .build();

在上面的代码中,只有当我完全正确地写出他们的名字和姓氏时,我才能找到用户。但我想要的是获得具有相似姓名或姓氏的用户。此外,用户的姓氏和名字存储在一个字符串变量中。就像在 Facebook 中一样,如果你搜索一些名字,它也会显示相似的名字。有没有一个好的方法可以用 firestore 来实现这一点?


As per 官方文档:

Cloud Firestore 不支持本机索引或搜索文档中的文本字段。此外,下载整个集合来搜索客户端字段是不切实际的。

因此,我强烈建议您不要为了创建搜索而下载整个集合,这是不值得的。但为了获得更好的搜索效果,我建议您使用以下查询:

Query query = db.collection("users").startAt(searchText).endAt(searchText+ "\uf8ff");

如果此查询不是您要搜索的内容,我建议您使用Algolia搜索,Firebase 也推荐使用该搜索。我也推荐你看看这个video.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Firestore:查询与搜索词匹配或相似的名称 的相关文章

  • 用于带有 imageview 的可点击布局的 android 选择器

    伙计们 如果我有这样的布局
  • 我在这个正则表达式中做错了什么?

    我正在做一个关于正则表达式的学校作业 我先解释一下 我必须编写一个正则表达式来检查 URL 我必须检查的条件是 URL 是 http s 还是 ftp s 域名是 nl 还是 edu 至少有一个第三级域名 但如果该域名以 万维网 必须有一个
  • java.util.Currency.getInstance 抛出 IllegalArgumentException

    我只是想尝试一下java util Currency 但对于少数货币代码来说它让我困惑java lang IllegalArgumentException 这是我的简单代码 java util Currency c java util Cu
  • java中接口上的抽象方法是什么[重复]

    这个问题在这里已经有答案了 可能的重复 为什么要将 Java 接口方法声明为抽象方法 https stackoverflow com questions 641536 why would one declare a java interfa
  • 传递 Intent 值并从 SQLite 数据库检索数据

    我在android中编写了一个类似于联系人的应用程序 我的列表中有一些项目 当我单击它们时 我从数据库获取信息并显示在另一个视图中 但是当我单击列表视图中的其中一个名称时 我会看到一个空屏幕 模拟器变成空白 请帮忙 我是 Android 编
  • 如何在类图中对自定义异常关联进行建模?

    Reading here http www jguru com faq view jsp EID 62790 似乎使用泛化来建模自定义异常类很常见 它没有提到的是我如何对与可能引发自定义异常的类的关联进行建模 请注意 我并不是在问如何在引发
  • 使用Optional进行空检查

    我想使用可选实用程序在 JDK8 中执行空检查 这是我正在编写的代码 它给了我一个错误 java util Optional stringToUse java util Optional of childPage getContentRes
  • 访问 Android 崩溃报告

    当我使用 Sports Tracker 时 它崩溃了 当我按下 报告 按钮来报告崩溃时 我会看到一个简单的输入字段 要求对崩溃做出评论 但是 按 预览 将使我了解正在与崩溃日志一起发送的数据 数据量实际上是巨大的 包括日期 时间 设备名称
  • Android 中 LinkedIn 的 Oauth 2.0 授权

    即使 linkedIn 没有这样的 Android 特定 sdk 例如适用于 android 的 facebook 和 twitter sdk 使用 Oauth 1 0 设置 linkedIn 授权仍然很容易使用 抄写员java https
  • 使用Java 8开发的程序可以在Java 7上运行吗?

    我有点困惑 Oracle 表示 Java 8 与 Java 7 向后 高度兼容 但是 Java 8 程序有什么可能性可以在 Java 7 上成功运行 SE EE 呢 如果第一点为真 Java 8 应用程序将在 Java 7 服务器支持上部署
  • 发送电子邮件到多个地址 Android

    我想选择多个电子邮件地址 然后向所有这些地址发送电子邮件 我的代码如下 emailIntent putExtra android content Intent EXTRA EMAIL new String listofemailaddres
  • Android:Exoplayer - ExtractorMediaSource 已弃用

    我正在关注这个tutorial https www raywenderlich com 5573 media playback on android with exoplayer getting started实施Exoplayer 但 E
  • 无法将 NodeMCU 与 Firebase 连接,因为控制台显示设置/编号失败:每次

    无法将 NodeMCU 与 Firebase 连接 因为控制台显示设置 编号失败 每次 firebase 也没有更新 或者我应该更换云服务器 include
  • Android 上的推送器

    我正在尝试让 Pusher 在 Android 上运行 这是我的需求 必须支持 私人 频道 必须支持安全连接 必须能够覆盖推送器 身份验证端点 注意 我已经尝试过以下路线 在 WebView 中加载 Pusher js 并让它回退到 Soc
  • 在 OpenCV 中将 `BufferedImage` 转换为 `Mat`

    我怎样才能转换BufferedImage to a Mat in OpenCV 我正在使用 JAVA 包装器OpenCV not JavaCV 由于我是新手OpenCV我在理解如何做时遇到一些问题Mat works 我想做这样的事情 基于
  • Java 错误:默认构造函数未定义隐式超级构造函数

    我有一些简单的 Java 代码 其结构与此类似 abstract public class BaseClass String someString public BaseClass String someString this someSt
  • Android 前台服务通知未显示

    我正在尝试启动前台服务 我收到服务确实启动的通知 但通知总是被抑制 我仔细检查了应用程序是否允许在我的设备上的应用程序信息中显示通知 这是我的代码 private void showNotification Intent notificat
  • 融合位置有时会停止

    我一直在开发一个跟踪用户位置的应用程序 为此 我使用了谷歌播放服务位置模块 又名融合位置 总而言之 一切正常 但有时 完全随机 我根本不再收到来自谷歌位置服务的位置更新 我的意思是 我的应用程序工作正常 但没有位置更新 不仅如此 如果我启动
  • 取消现有 Firebase 应用程序的链接?

    我想要 链接到新的或现有的 Firebase 项目和应用 但 crashlytics 仪表板告诉我我的项目已经链接 如何取消链接我现有的项目 要取消 Fabric 应用与 Firebase 的链接 请按照以下步骤操作 转到 Firebase
  • 如何用java实现FTP?

    我正在使用 FTP 我必须在客户端将消息嵌入到图像文件中 并且我必须将其发送到服务器 在服务器端我必须检索图像文件并然后我将检索该消息 我已经完成了嵌入消息并使用密码学和隐写术技术检索消息 我正在寻找如何将该文件从客户端传输到服务器 我必须

随机推荐

  • 表是“只读”的

    当我想执行一个update在我的桌子上查询时出现错误 1036 桌子data是只读的 我该如何解决这个问题 表属性在 var db mysql被设置为777 修复表 功能似乎没有帮助 我能做点什么吗 就我而言 mysql配置文件有innod
  • 如何将子类的向量传递给需要父类向量的函数?

    我可以将 Child 传递给需要 Parent 的成员函数 但是在使用向量时 我收到编译错误 提示没有匹配的声明 请参阅底部的 CorrelationEngineManager cpp 对 getUniqueLabels 的调用 服务器事件
  • MKPinAnnotationView:是否有超过三种颜色可用?

    根据 Apple 文档 MKPinAnnotationView 引脚颜色有红色 绿色和紫色可供选择 还有什么办法可以得到其他颜色吗 我在文档中没有找到任何内容 多一点 和原来的 和代码 MKAnnotationView mapView MK
  • 平均库存历史表

    我有一个表格 用于跟踪某些商店和产品的库存随时间的变化 该值是绝对库存 但我们仅在库存发生变化时插入新行 这种设计是为了保持表较小 因为预计它会快速增长 这是一个示例架构和一些测试数据 CREATE TABLE stocks id seri
  • DbAcl::check() - 权限检查中 ARO/ACO 节点查找失败。

    我正在使用 cakephp 并使用 acl 但我面临这个错误 DbAcl check Failed ARO ACO node lookup in permissions check 感谢帮助 您可能已向控制器添加了操作 但未更新aco桌子
  • CSS 属性中“auto”值的含义是什么?

    是什么意思autoCSS 属性的值 当 CSS 属性的值设置为时会发生什么auto 上述财产的价值已调整自动地根据元素的内容或上下文 例如 一个块级元素height auto随着包含更多文本 它会变得更高 再举一个例子 一个块元素margi
  • 安装后运行 kubectl 命令 Helm

    我想运行一些kubectl用于验证 Helm 图表的集群安装后的命令 我找不到与此相关的任何文档 在 Helm 中 存在将注释显示为一部分的概念NOTES txt但看起来您不能在该阶段运行任何命令 目前 Helm 无法做到这一点吗 您可以定
  • 将 morgan 与 logger 一起使用时,stream.write 不是一个函数

    基本上我正在尝试使用摩根和温斯顿为nodejs实现记录器 当我尝试使用 morgan 时 抛出stream write 错误不是一个函数 因为我想获取文件名 所以我传递模块 从模块对象有一个名为文件名的属性 下面是我的代码 温斯顿 js c
  • 如何将 Vim 中每行开头的空格数量减半?

    有人可以告诉我如何在 Vim 中执行与此映射相反的操作 nnoremap
  • 默认指定的非类型模板参数值时出现“使用类模板需要模板参数”错误

    编译这个 include
  • 调用弹出窗口的“.ShowDialog()”时 WPF 应用程序关闭

    首先 我想解释一下我要做什么 我正在开发一个学习应用程序来向学生展示一些卡片 我有CardPack类是一组卡片 为了获得卡包的许可 我想从用户那里获取 ID 然后我创建了一个窗口来从用户那里获取 RegisterKey 这是我的GetReg
  • 求所有连续子数组最大差值之和(S)的最佳方法

    给定一个包含 n 个元素的数组 d 0 d 1 d n 1 计算所有连续子数组的最大差值的和 S 形式上 S 总和 max d l r 最小值 d l r 0 Input 4 1 3 2 4 Output 12 解释 l 0 r 0 数组
  • python绘制多个直方图

    我有一个包含 30 个变量的数据框 X v1 v2 v30 and col name v1 v2 v30 对于每个变量 我想绘制直方图以了解变量分布 但是 写代码逐一绘制太手动了 我可以用for循环之类的东西一次性绘制30个直方图吗 例如
  • Python 3.1.3 打开 mbox 文件,与 python 2.x 相比真的慢吗?

    我尝试在 python 3 1 3 中使用邮箱模块打开 mbox 文件 里面只有3封邮件 只有27k大 但是 当阅读邮件时 我的 CPU 使用 100 大约 2 3 分钟 直到它完成任务且没有错误 我用 python 2 7 1 尝试了同样
  • 在 Android 上实时更改曲目的播放速率

    我想知道是否有人知道一个可以实时更改曲目播放速率的库 我的想法是加载曲目并将其播放速率更改为一半或两倍 首先 我尝试使用 MusicPlayer 但根本不可能 然后我尝试使用 SoundPool 问题是 使用 SoundPool 一旦加载曲
  • 如何复制包含“\0”字符的数据

    我正在尝试复制包含 0 的数据 我正在使用 C 当研究结果是否定的时 我决定编写自己的函数来将数据从一个 char 复制到另一个 char 但它没有返回想要的结果 我的尝试如下 include
  • Laravel 急切加载与嵌套关系

    我知道有人问过这个问题 但我的情况有所不同 我定义了与评论模型关系的帖子模型 Post Model public function comments return this gt hasMany comment 和评论模型 每个评论属于一个
  • 在Python中查找列表中最长和最短的列表[重复]

    这个问题在这里已经有答案了 我需要打印列表中具有最小和最大项目数的列表 例如 如果我有 total list 1 2 3 1 2 3 4 1 2 3 4 5 我需要返回具有最小和最大长度的列表 我该怎么做 输出可能类似于 total lis
  • WndProc 中未捕获表单 WM_KEYDOWN 和 WM_KEYUP 消息

    不捕获表单 keydown 和 keyup 消息 public partial class Form1 Form const int WM KEYDOWN 0x100 const int WM KEYUP 0x101 protected o
  • Firestore:查询与搜索词匹配或相似的名称

    我有一个用户列表 其姓名位于 Firestore 数据库中 我想要实现的是让用户能够搜索和找到其他用户 我的问题是 Query query db collection users whereEqualTo name searchTerm F