我正在使用 Flutter 和 Firebase 开发一个应用程序,我必须解决一个听起来像这样的问题:
- 每个用户(在任何时候)都可以将自己置于等候名单
- Firebase 必须通过以下方式处理等待名单创建(随机)用户对
我的想法是在 Cloud Firestore 中有一个等待列表的集合,其中每个用户都是一个文档和一个云功能它通过在集合中搜索其他用户(文档)、删除两个文档(即从等待列表中删除用户)并在代表该对的另一个集合中创建另一个文档来对文档创建做出反应。
主要问题是设计(如果可能)交易,以保证同一云函数的两个或多个执行不会重叠。
有什么建议吗?或者有其他方法可以解决这个问题吗?
谢谢!
您可以将所有用户放在一个文档中Unique ID
和数据如下:
然后你可以使用云功能这将执行以下操作:
-
检索Array
called waiting来自特定文档。它
将添加新帐户user id
到那个数组。
-
If the array
至少有 2 个元素。它将添加一个新的array
of maps
named paired从 2 个元素waiting列出和
将值添加到 firestore。它将调用现有的paired
array
并添加新的 2 个元素并将其保存到Firestore
。还更新了配对领域在
用户文档。
-
它将从等待列表中删除 2 个元素更新为空
列表。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)