whereArrayContains 限制为 10

2023-12-01

我要过滤问题集合基于tagIDs。一切工作正常但是其中数组包含最多适用于 10 个 id。

我怎样才能提高我的结构工作超过10年tagIDs并且确保尽可能少地调用服务器减少金钱支出.

Firestore-root
   |
   --- questions (collection)
   |     |
   |     --- qid (documents)
   |          |
   |          --- title: "Question Title"
   |          |
   |          --- qid: "autogeneratedID"
   |          |
   |          --- tagIDs =[tagID_1,tagID_2...tag_IDs_5] // array
   |
   --- tags (collection)
   |     |
   |     --- tagID (documents)
   |          |
   |          --- tagName: "Mathematics"
   |          |
   |          --- tagID: "autogeneratedID"
   |

获取包含特定 tagID 的问题(如果 tagID 大于 10,则失败)

private fun fetchQuestion(tagMap: HashMap<String, String>) {

        val tagIDList:MutableList<String> = ArrayList();
        for ((key) in tagMap) { 
            tagIDList.add(key);
        }
        var query: Query = db.collection(Constants.QUESTION_COLLECTION)
                .orderBy(Constants.KEY_QUESTION_ID, Query.Direction.DESCENDING).limit(50)
        if(!tagIDList.isNullOrEmpty())
            query = query.whereArrayContainsAny("tagIDs", tagIDList);//if list greater than 10 it's not working

        query.get().addOnSuccessListener { queryDocumentSnapshots ->
                if(!queryDocumentSnapshots.isEmpty){
                    for (documentSnapshot in queryDocumentSnapshots) {
                        val question = documentSnapshot.toObject(QuestionBO::class.java)
                    }
                }
            }.addOnFailureListener { e ->
                toast("No record found.")
                e.printStackTrace()
            }
    }

The whereArrayContains 的文档查询非常具体。它只能处理 10 个数组项:

use the array-contains-any运算符组合最多 10 个array-contains同一字段上的子句具有逻辑OR

您应该知道,whereArrayContains 并不会减少计费文档的读取次数。如果您的数组包含 10 个项目,则仍将花费 10 次文档读取。如果执行 10 个 whereArrayContains 查询,每个查询包含 10 个数组项,则仍将花费 100 次读取。

如果您需要 N 个文档,则没有捷径可以使这 N 个文档的读取成本低于 N 个文档读取的成本。

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

whereArrayContains 限制为 10 的相关文章

  • 卸载后 Web 应用程序不显示“添加到主屏幕”

    这是我第一次创建网络应用程序 我设法解决了这个问题 所以我得到了实际的 chrome 提示 将其添加到主屏幕 然后我从手机上卸载了该网络应用程序 因为我想将其展示给我的同事 但是 屏幕上不再出现提示 问题 这是有意为之的行为还是我的应用程序
  • SearchView过滤ListView

    我已经实现了搜索视图来过滤我的列表视图项目 当我输入任何文本时 它会过滤列表 但当我退出搜索视图时 它不会返回原始列表项 public class PlacesListAdapter extends ArrayAdapter
  • Android 后退按钮无法与 Flutter 选项卡内的导航器配合使用

    我需要在每个选项卡内有一个导航器 因此当我推送新的小部件时 选项卡栏会保留在屏幕上 代码运行得很好 但是 android 后退按钮正在关闭应用程序而不是运行 Navigator pop import package flutter mate
  • 修改列表时,Jetpack composecollectAsState() 未收集热流

    当我使用collectAsState the collect 仅当传递新列表时触发 而不是在修改和发出列表时触发 查看模型 HiltViewModel class MyViewModel Inject constructor ViewMod
  • 如何使用 Cordova 获取当前安装的应用程序的版本?

    我已经找到了应用程序可用性插件 https github com ohh2ahh AppAvailability它主要检查用户是否在其设备上安装了某个应用程序 是否有可能获得应用程序的当前版本 开发者名称 重要 以及所有可能的信息 一般来说
  • Android:捕获的图像未显示在图库中(媒体扫描仪意图不起作用)

    我遇到以下问题 我正在开发一个应用程序 用户可以在其中拍照 附加到帖子中 并将图片保存到外部存储中 我希望这张照片也显示在图片库中 并且我正在使用媒体扫描仪意图 但它似乎不起作用 我在编写代码时遵循官方的Android开发人员指南 所以我不
  • 无法展开 RemoteViews - 错误通知

    最近 我收到越来越多的用户收到 RemoteServiceException 错误的报告 我每次给出的堆栈跟踪如下 android app RemoteServiceException Bad notification posted fro
  • Android MediaExtractor seek() 对 MP3 音频文件的准确性

    我在使用 Android 时无法在eek 上获得合理的准确度MediaExtractor 对于某些文件 例如this one http www archive org download emma solo librivox emma 01
  • 发布android后更改应用内购买项目的价格

    在 Google Play 上发布后 是否可以更改应用内购买商品的价格 我假设该应用程序也已发布 完整的在线文档位于http developer android com http developer android com也http sup
  • 在gradle插件中获取应用程序变体的包名称

    我正在构建一个 gradle 插件 为每个应用程序变体添加一个新任务 此新任务需要应用程序变体的包名称 这是我当前的代码 它停止使用最新版本的 android gradle 插件 private String getPackageName
  • 如何在PreferenceActivity中添加工具栏

    我已经使用首选项创建了应用程序设置 但我注意到 我的 PreferenceActivity 中没有工具栏 如何将工具栏添加到我的 PreferenceActivity 中 My code 我的 pref xml
  • 在 SQLite 中搜索时排除 HTML 标签和一些 UNICODE 字符

    更新 4 我已经成功运行了firstchar例如 但现在的问题是使用regex 即使包含头文件 它也无法识别regex操作员 有什么线索可以解决这个问题吗 更新 2 我已经编译了sqlite3我的项目中的库 我现在正在寻找任何人帮助我为我的
  • 如何默认在 ActionOpenDocument 意图中显示“内部存储”选项

    我需要用户选择一个自定义文件类型的文件 并将其从 Windows 文件资源管理器拖到 Android 设备上 但默认情况下内部存储选项不可用 当我使用以下命令启动意图时 var libraryIntent new Intent Intent
  • 尝试在 ubuntu 中编译 android 内核时出错

    我正在尝试从源代码编译 Android 内核 并且我已经下载了所有正确的软件包来执行此操作 但由于某种原因我收到此错误 arm linux androideabi gcc error unrecognized command line op
  • Android访问远程SQL数据库

    我可以直接从 Android 程序访问远程 SQL 数据库 在网络服务器上 吗 即简单地打开包含所有必需参数的连接 然后执行 SQL 查询 这是一个私人程序 不对公众开放 仅在指定的手机上可用 因此我不担心第三方获得数据库访问权限 如果是这
  • Android 中麦克风的后台访问

    是否可以通过 Android 手机上的后台应用程序 服务 持续监控麦克风 我想做的一些想法 不断聆听背景中的声音信号 收到 有趣的 音频信号后 执行一些网络操作 如果前台应用程序需要的话 后台应用程序必须能够智能地放弃对麦克风的访问 除非可
  • .isProviderEnabled(LocationManager.NETWORK_PROVIDER) 在 Android 中始终为 true

    我不知道为什么 但我的变量isNetowrkEnabled总是返回 true 我的设备上是否启用互联网并不重要 这是我的GPSTracker class public class GPSTracker extends Service imp
  • 如何在Xamarin中删除ViewTreeObserver?

    假设我需要获取并设置视图的高度 在 Android 中 众所周知 只有在绘制视图之后才能获取视图高度 如果您使用 Java 有很多答案 最著名的方法之一如下 取自这个答案 https stackoverflow com a 24035591
  • 实现滚动选择 ListView 中的项目

    我想使用 ListView 您可以在其中滚动列表来选择一个项目 它应该像一个 Seekbar 但拇指应该是固定的 并且您必须使用该栏来调整它 我面临的一个问题是 我不知道这种小部件是如何调用的 这使得我很难搜索 所以我制作了下面这张图片 以
  • 如何将 google+ 登录集成到我的 Android 应用程序中?

    大家好 实际上我需要通过我的应用程序从 google 登录人们 现在我阅读了 google 上的文档 其中指出 要允许用户登录 请将 Google Sign In 集成到您的应用中 初始化 GoogleApiClient 对象时 请求 PL

随机推荐

  • Django:表不存在

    我删除了一些与应用程序相关的表 并再次尝试了syncdb命令 python manage py syncdb 它显示错误 例如 django db utils ProgrammingError 1146 Table someapp feed
  • 计算机如何分配两个变量以及如何计算两个变量之间的距离?

    当我尝试检查两个变量之间的差异时 我发现了一些有趣的东西 您可以在下面的代码中看到 include
  • 如何在Android中使用DialogFragment进行文本输入?

    我正在尝试使用推荐的方法获取用户输入到对话框中的值DialogFragment类 对话框构造并运行良好 但我无法返回EditText参数传递给父类 无需获取NullPointerException My DialogHost类 它构造 返回
  • 自动过滤多个不相等的值

    我正在为 Excel 表添加自动过滤器 如下所示 With Sheets Sheet1 With ListObjects Summary Range AutoFilter Field 1 Criteria1 gt 400000 Operat
  • 在 ASP.NET 中执行命令行实用程序

    我需要一些有关从 C ASP NET Web 应用程序使用命令行实用程序的建议 我找到了一个用于将文件转换为 CSV 格式的第 3 方实用程序 该实用程序运行良好 可以从命令行使用 我一直在网上寻找有关如何执行命令行实用程序的示例 并发现t
  • 在spring roo中添加自定义页面

    我有一个关于 spring roo 的问题 如何将自定义页面添加到您的 Web 应用程序 如果我使用标准 Servlet 这似乎非常基本且简单 但我完全困惑在 Spring roo 中执行此操作 我想要的只是主页 带有菜单等 中有一个链接到
  • 简单的互操作测试;通过简单的调用使堆栈不平衡

    我目前正在研究与互操作相关的问题 并编写了一个小型测试程序 以帮助我弄清楚发生了什么 有问题的问题涉及对更复杂的本机函数的调用 很难在此处发布 无论如何 我有一个非常简单的本机 dll 其中仅包含以下代码 extern C declspec
  • 无法通过 Ubuntu 终端在 Github 上推送

    我正在尝试从我的 Ubuntu 机器推送到 github 我可以从 Visual Studio Code 终端推送 但无法从 Ubuntu 终端或 Android Studio 终端推送 每次我尝试从终端或 android studio 终
  • 如何终止 jboss 超时的数据库事务

    我用的是jboss 4 2 3 它具有设置 TransactionTimeout 在jboss service xml中 指定允许事务执行多长时间 不幸的是 当超时过去时 执行不会立即中止 如果事务正在执行某些操作 则只会将其标记为稍后回滚
  • 插值内的 Angular MatToolTip 条件

    我正在为 MatToolTip 添加角度条件 首先 以下内容仅适用于 1 个字符串分配 matToolTip myData name 但我需要添加如下条件 matToolTip myData hasName myData name myDa
  • java https网络问题

    我正在尝试实现最简单的 HTTPS 通信程序 网上有很多例子 但我没能成功运行 这是一个例子 public class ReadHttpsURL1 static final int HTTPS PORT 443 public static
  • 为什么在 python map() 和 multiprocessing.Pool.map() 中得到不同的答案?

    我有一个奇怪的问题 我有一个格式的文件 START 1 2 STOP lllllllll START 3 5 6 STOP 我想读一下之间的内容START and STOP作为块 并使用my f处理每个块 def block generat
  • 通过 JavaScript 检索所有已安装打印机的列表

    我收到了一个网页的屏幕截图 其中显示了组合框中客户端可访问的所有已安装打印机 本地和网络打印机 的列表 并让用户选择一台 甚至还有一个刷新列表的按钮 我无权访问该页面 无法证明其功能 是否有可能在网页中以任何方式执行此操作或模拟此工作 如果
  • Office365 REST API - 创建带有附件的日历事件

    我无法使用 Office365 的 Rest API 创建带有附件的日历事件 创建没有附件的事件不是问题 尝试创建带有附件的事件会创建事件 但不会添加我发送的文件 服务器以 201 响应代码进行响应 我正在向以下地址发送 POST 请求 h
  • 按上次修改日期时间过滤 Onedrive 项目

    我尝试通过 lastModifiedDatetime 属性从 Microsoft Graph 端点中筛选 OneDrive 项目 像这样的东西 https graph microsoft com beta me drive special
  • 如何使用 Groovy 的正则表达式获取部分匹配的布尔值?

    Groovy 有一个正则表达式 匹配运算符 The 文档说它返回一个布尔值 但需要 严格匹配 它没有定义 严格匹配 我不熟悉该表达式所在的任何正则表达式系统false 但是 这就是 Groovy 告诉我的 foo bar baz bar g
  • 为什么不捕获一般异常

    我的VS刚刚告诉我 警告 2 CA1031 Microsoft Design 修改 Program Main string 以捕获比 Exception 更具体的异常或重新引发异常 我为什么要那么做 如果我这样做 并且没有捕获所有异常来处理
  • 如何实时回显输出(在脚本完成之前)?

    在脚本执行完毕之前如何输出到浏览器 例如 下面的代码将一次输出所有 100 个 hi 我该如何制作 以便在读取 处理该代码部分后立即输出 例如 PHPBB3论坛显示了逐步安装过程 在循环之前调用 ob implicit flush 请注意
  • 进入振奋精神; Qi还是X3?

    我正在和一个朋友一起为一个小型个人项目做一名口译员 我们开始实现所有类和通用结构 其中代码将被翻译然后执行 只是为了推迟将实际解析代码放入这些结构中 现在我们必须构建解析器 经过一番搜索 我发现到处都有帖子和人们谈论spirit Qi和sp
  • whereArrayContains 限制为 10

    我要过滤问题集合基于tagIDs 一切工作正常但是其中数组包含最多适用于 10 个 id 我怎样才能提高我的结构工作超过10年tagIDs并且确保尽可能少地调用服务器减少金钱支出 Firestore root questions colle