微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在Firebase中随机配对用户

如何解决在Firebase中随机配对用户

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

  • 每个用户(随时)可以将自己置于等待列表
  • Firebase必须通过创建(随机)对用户
  • 来处理等待列表。

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

解决方法

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

enter image description here

然后您可以使用 Cloud Function (云功能),它将执行以下操作:

  1. 从特定文档中检索名为 waiting Array。它 会将新帐户user id添加到该数组。

    enter image description here

  2. 如果array至少有2个元素。它将添加一个新的 array中的maps来自 waiting 列表中的2个元素,名为 paired 将值添加到firestore。它将调用现有的 paired array并添加新的2个元素并将其保存到Firestore。还要更新其中的 paired_with 字段 用户文档。

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。