如何在 Android 上使用 whereArrayContains() 过滤器查询包含 Firestore 集合中的对象数组的文档?

2024-02-25

我在 firestore 中有一个集合,其中每个文档都包含一组联系人,我想查询那些联系人的电子邮件 ID 为特定值的文档。

我遇到了 whereArrayContains() 过滤器https://firebase.google.com/docs/reference/android/com/google/firebase/firestore/Query#whereArrayContains(java.lang.String,%20java.lang.Object) https://firebase.google.com/docs/reference/android/com/google/firebase/firestore/Query#whereArrayContains(java.lang.String,%20java.lang.Object),具有以下描述:-

公共查询 whereArrayContains(字符串字段,对象值)
创建并返回一个新查询,其中包含文档必须的附加过滤器 包含指定的字段,该值必须是一个数组,并且 数组必须包含提供的值。

一个查询只能有一个 whereArrayContains() 过滤器。

Can the value在上面的方法中指向对象数组的对象内部的字段?

还有这句话the value must be an array考虑到方法参数也被调用,有点令人困惑value。我确信文档意味着field应出现在文件中并且它的价值应该是一个数组并且该数组应该包含value范围。


您无法在 Firestore 查询中查询数组中对象的字段。包含数组的查询将与数组中的对象进行比较。

该值必须是一个数组

这是指您尝试查询的字段的值。更好的措辞是

创建并返回一个带有附加过滤器的新查询,该过滤器文档必须包含指定的字段、值指定字段的必须是一个数组,并且该数组必须包含提供的值。

如果您尝试过滤用户 ID 或类似内容,请考虑向您正在查询的对象添加第二个数组,然后将 ID 作为字符串添加到该数组中:

{
    "name": "test",
    "users": [someUserObject, someOtherUserObject],
    "userIds": ["someId", "someOtherId"]
}

然后查询该数组:

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

如何在 Android 上使用 whereArrayContains() 过滤器查询包含 Firestore 集合中的对象数组的文档? 的相关文章

随机推荐

  • 克隆泛型类型

    我想克隆一个通用对象并保留其类型 run Append style Clone BlackFont run object accepts only RunProperties objects public T Clone T what if
  • 在 iOS 上的 Safari 中滚动时如何监控滚动位置?

    我目前使用 window bind scroll foo 监视 window scrollTop 并做一些事情来创造视差效果 在所有桌面浏览器中foo 用户滚动的每个像素都会被调用 一切都很好 在 iOS 上的 Safari 中 滚动事件仅
  • 如何使 apk 安全。防止反编译

    我正在开发一个应用程序 它具有 SQLite 数据库来存储必须受到保护的个人信息 有哪些方法可以保护这些个人数据 APK很容易被完全反编译 那么我们如何保证APK的安全呢 另外 如何保护移动应用程序的数据库 基本上 有 5 种方法可以保护您
  • 无法运行宏...该宏在此工作簿中可能不可用

    我试图在不同的工作表上调用子程序 但收到运行时错误消息 具体来说 我有两个工作表和这些工作表中的多个 VBA sub 在其中一个 VBA 项目 例如 workbook1 xlsm 中 我有以下代码 Sub AnalysisTableMacr
  • 如何在 ie7 中使用 jquery 启用禁用的单选按钮

    这在 Firefox 中有效 我怎样才能使它在 IE7 中运行 addressSection input radio attr disabled false 我也尝试过这些但无济于事 addressSection input radio r
  • 使用 Android 调用 .NET Web 服务

    我知道以前曾在这里问过这个问题 但我认为这些答案不足以满足我的需求 我们有一个用于 iPhone 应用程序的 SOAP Web 服务 但我们可能需要 Android 特定版本或该服务的代理 因此我们可以选择使用 SOAP 或 JSON 我对
  • C# 更改特定行的背景颜色

    我已经从网格应用程序 XAML 模板 C Windows 应用商店 创建了一个新项目 到目前为止 我没有更改模板中的任何内容 但我想更改网格中特定行的背景颜色
  • Char 数组 VS Char *

    这是一个基于问题答案的问题 const char myVar 与 const char myVar https stackoverflow com questions 7082175 const char myvar vs const ch
  • 如何命名范围为 0.0 到 1.0 的值?

    我经常使用 0 0 到 1 0 之间的值来保存进度 透明度或其他可以从none to full 如果你愿意的话 可以给个百分比 我不想称其为百分比因为它不表示为 0 到 100 之间的值 为了给我的变量一个清晰的名称 我仍然想描述这种值 什
  • array_unique 有两个数组

    我有两个长度相同的数组 search type search term 我想删除任何重复项 因为存在具有相同类型和搜索词的搜索 即 search type a search type b search term a search term
  • 如何在 nginx 的子目录中安装 symfony2 应用程序

    我需要在同一主机上但不同的子目录 或位置块 上安装多个 symfony2 应用程序 使用此配置 当尝试访问任何 url 时 nginx 会抛出 找不到文件 或重定向循环消息 Example login gt base login app1
  • 遍历数据帧的每一行而不进行迭代

    这是我的示例数据 存货是基于一个Product Customer Product Quantity Inventory 1 A 100 800 2 A 1000 800 3 A 700 800 4 A 50 800 5 B 20 100 6
  • Java 线程运行在哪个处理器上?

    有没有办法使用 Java 本机线程找出您的线程正在哪个处理器上运行 无论是在单个系统上还是在多个系统上 如果没有 有什么图书馆可以提供帮助吗 JVM 的线程调度程序是特定于 JVM 的 因此不存在 通用 解决方案 据我所知 没有任何现成可用
  • Github markdown - 无法通过 inline-css 和 class 更改任何样式

    我尝试更改字体大小和行高但失败 我尝试过内联样式 div style font size 12px line height 12px bla div 和班级 div class footnote bla div 和 Markdown 语法
  • 泄漏服务连接意味着什么?

    我正在为我的 Android 应用程序编写一个服务 我试图了解绑定机制是如何工作的 如果我在活动的 onCreate 中绑定我的服务 但没有在 onStop 或 onDestroy 中取消绑定它 则会收到错误 android app Ser
  • 使用 COUNT 后如何获得其他列上具有相同值的列的平均值?

    我有以下查询 SELECT COUNT id AS number of orders FROM orders WHERE MONTH date 5 GROUP BY item number MONTH date YEAR date 我得到以
  • 使用组合框查询数据库

    我将一周中的所有天都放在组合框中 但是当选择一天时 所有天都显示在我的数据网格中 如何使用组合框中选定的一个值来搜索该值 Private Sub btnViewTimeTable Click sender As Object e As Ev
  • Azure Pipelines 如何为“仅手动”触发版本筛选每个阶段的工件

    假设我有这 3 个阶段 开发 QC 生产 我的要求是 仅来自特定分支 release 的工件可以部署到 QC Prod 所有分支的工件都可以部署到 Dev 我可以使用它来实现我想要的伪影过滤器对于 后期 触发版本 但我需要这个 仅手动 是否
  • F#编译器和运行时版本号混淆

    我无法确定哪个版本的 F Core 运行时库应与 Mono 平台 NET 3 5 结合使用 随 Microsoft Net 4 5 一起安装的有两个版本的 FSharp Core 运行时 2 3 0 0 和 4 3 0 0 我的猜测是 第一
  • 如何在 Android 上使用 whereArrayContains() 过滤器查询包含 Firestore 集合中的对象数组的文档?

    我在 firestore 中有一个集合 其中每个文档都包含一组联系人 我想查询那些联系人的电子邮件 ID 为特定值的文档 我遇到了 whereArrayContains 过滤器https firebase google com docs r