在 Firebase 中随机配对用户[关闭]

2023-11-29

我正在使用 Flutter 和 Firebase 开发一个应用程序,我必须解决一个听起来像这样的问题:

  • 每个用户(在任何时候)都可以将自己置于等候名单
  • Firebase 必须通过以下方式处理等待名单创建(随机)用户对

我的想法是在 Cloud Firestore 中有一个等待列表的集合,其中每个用户都是一个文档和一个云功能它通过在集合中搜索其他用户(文档)、删除两个文档(即从等待列表中删除用户)并在代表该对的另一个集合中创建另一个文档来对文档创建做出反应。 主要问题是设计(如果可能)交易,以保证同一云函数的两个或多个执行不会重叠。 有什么建议吗?或者有其他方法可以解决这个问题吗? 谢谢!


您可以将所有用户放在一个文档中Unique ID和数据如下:

enter image description here

然后你可以使用云功能这将执行以下操作:

  1. 检索Array called waiting来自特定文档。它 将添加新帐户user id到那个数组。

    enter image description here

  2. If the array至少有 2 个元素。它将添加一个新的array of maps named paired从 2 个元素waiting列出和 将值添加到 firestore。它将调用现有的paired array并添加新的 2 个元素并将其保存到Firestore。还更新了配对领域在 用户文档。

  3. 它将从等待列表中删除 2 个元素更新为空 列表。

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

在 Firebase 中随机配对用户[关闭] 的相关文章

随机推荐

  • boost asio 缓冲区延迟分配

    异步操作 现在我传递预分配的字节缓冲区 例如 s async receive from boost asio buffer preallocated pointer preallocated size remote endpoint boo
  • 如何从一个 HTML5 画布拖放到另一个画布

    我试图弄清楚如何将图像从一个画布拖放到另一个画布 假设画布彼此相邻 是否可以无缝地将某些东西拖过边界 如果不是 将 div 拖到画布上 获取其 ID 然后通过响应画布上的 mouseup 位置来放置它是不是更好 您不能在画布上拖动项目 画布
  • 如何检查是否有任何 JavaScript 事件侦听器/处理程序附加到元素/文档? [复制]

    这个问题在这里已经有答案了 尝试在线搜索 但看起来我无法正确制定搜索查询 我如何使用 jQuery 或仅使用 javascript 列出附加到元素 文档 窗口或存在于 DOM 中的所有处理程序或事件侦听器 在 1 8 之前的 jQuery
  • 有理数 - ruby​​ 中的原始数字

    如何获得原始号码 例如当我输入 r Rational 2 10 1 5 2和10将更改为1和5 r numerator 1 r denominator 5 如何从 Rational 类的实例中获取 2 和 10 r 我对 Rational
  • Android:DCIM 文件夹中的重复照片存储

    我正在使用本机 Android 相机并将文件保存到应用程序数据文件夹 mnt sdcard Pictures 同时 在某些设备上 照片的另一个副本会保存到 DCIM 文件夹中 这是我的代码 private void startStockCa
  • Inno Setup 根据可执行调用的结果有条件重新启动

    我的 Inno Setup 脚本用于安装驱动程序 它运行我的InstallDriver exe在步骤中复制此文件后ssInstall 我需要根据返回的值要求用户在某些情况下重新启动InstallDriver exe 这意味着我不能把Inst
  • Pandas dataframe:从列中的字符串中提取浮点值

    我正在尝试从特定列的字符串中提取浮动值 原始输出 DATE strCondition 4 3 2018 2 9 4 3 2018 3 1 text 4 3 2018 2 6 text 4 3 2018 text 2 7 和其他变化 我也尝试
  • ASP.NET MVC 下的 SSL 页面

    如何对基于 ASP NET MVC 的站点中的某些页面使用 HTTPS Steve Sanderson 在预览版 4 上有一个关于如何以 DRY 方式执行此操作的非常好的教程 网址为 http blog codeville net 2008
  • Django,使用其他表中的数据进行注释和排序

    在我的应用程序中 有请求物品的用户和捐赠这些物品的用户 我想获取所有捐款最多的用户 这些是我的模型 class ItemRequest models Model item type models ForeignKey ItemType de
  • 当 html 表单允许文件上传时,Django 停止并显示“生成器引发 StopIteration”

    我的设置是 Windows 10 Python 3 7 Apache 2 4 mod wsgi 当我添加这个时enctype multipart form data 在我的表单中 仅通过添加此属性 仅 没有文件附加到表单 提交时出现此错误
  • nginx。被 CORS 政策阻止

    当前 nginx 配置 server listen hidden 80 server name dev hidden com root var www back hidden api location add header Access C
  • csv 读取引发“UnicodeDecodeError:'charmap'编解码器无法解码...”

    我已经阅读了我能找到的所有帖子 但我的情况似乎很独特 我对 Python 完全陌生 所以这可能是基础的 我收到以下错误 UnicodeDecodeError charmap 编解码器无法解码位置 70 中的字节 0x8d 字符映射到未定义
  • 如何将日期选择器包装在新的 div 中?

    我需要将我的日期选择器放在一个新的 div 中 这将是一个 shadow border div 我尝试过以下方法 beforeShow function input input datepicker widget find ui datep
  • 最大字符串数组 VisualBasic WSH

    我正在 VB 中编写一个 WSH 脚本 以读取通过 Run 方法使用重定向目录列表生成的大量目录列表 目录列表大约有 8400 行 但是每次我运行脚本时 都会出现以下循环 执行直到 DirList AtEndOfStream Redim 保
  • 我可以手动注册/安装 Search.Collat​​orDSO.1

    我目前正在尝试使用 windows search 服务搜索一些索引文件 我的问题是 Windows 搜索无法安装在网络服务器上 因为它是 网络版本 收到的错误消息是 Search Collat orDSO 1 提供程序未在本地计算机上注册
  • Windows 忽略 JAVA_HOME:如何将 JDK 设置为默认值?

    如何说服 Windows 使用 JDK 而不是 JRE 这个问题之前已经在这里和其他地方被问过 如何设置默认 Java 安装 运行时 Windows 问题是 Windows 忽略了JAVA HOME它还忽略了我将 JDK bin 目录作为路
  • 如何检测Android是否完全支持USB?

    我的应用程序使用UsbManager与 USB 摄像头通信 有些设备不支持 USB 这些将返回null for UsbManager context getSystemService Context USB SERVICE 或者他们会抛出一
  • 放大 Plotly 热图

    目前 Plotly JS 热图中有 2 种 缩放 行为 在这里 您可以采用任何矩形形状进行缩放 单击 拖放 但是像素不是正方形的 这对于某些应用程序来说是不行的 不保留长宽比 有时应该保留 const z Array from length
  • 为什么在隐含时使用媒体查询类型“all”?

    我最近注意到我一直在使用all在每一个 media查询规则 我不明白为什么我这样做 我在网上搜索过 我发现大多数 media网络上的规则示例使用如下格式 media all and some other condition 为什么有媒体类型
  • 在 Firebase 中随机配对用户[关闭]

    Closed 这个问题需要细节或清晰度 目前不接受答案 我正在使用 Flutter 和 Firebase 开发一个应用程序 我必须解决一个听起来像这样的问题 每个用户 在任何时候 都可以将自己置于等候名单 Firebase 必须通过以下方式