首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何防止从React-Native应用程序向Firestore发送多个请求?

如何防止从React-Native应用程序向Firestore发送多个请求?
EN

Stack Overflow用户
提问于 2020-01-25 21:18:10
回答 2查看 646关注 0票数 1

我有一个应用程序,将由许多用户使用,有时他们会在同一时间发布到同一文档,Firebase将如何处理。有什么办法可以防止这种情况发生吗?

我的场景是这样的:有一家餐厅,你可以在那里点餐,但数量有限,假设有5个,同时有10个用户在该文档上发帖,我如何防止这种情况发生?附注:我在RN应用程序中使用侦听器,所以它会一直检查数量的变化,但如果用户比应用程序中的更新速度更快怎么办?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-01-26 01:38:34

为了控制多个并发写入,您应该使用事务来确保每个客户端不会覆盖其他客户端正在执行的操作。该事务将确保一次只有一个客户端可以写入文档。在您的事务中,您可以检查某些文档字段是否处于不应超过的限制,如果超过,则使事务失败。

请阅读documentation on transactions以更好地了解它是如何工作的。

票数 2
EN

Stack Overflow用户

发布于 2020-01-25 21:30:15

您可以使用“接受或拒绝查询”的概念。

您的安全规则还可以根据查询的约束接受或拒绝查询。request.query变量包含查询的limit、offset和orderBy属性。例如,您的安全规则可以拒绝任何未将检索的最大文档数限制在特定范围内的查询:

代码语言:javascript
运行
复制
allow list: if request.query.limit <= 5;

此外,您应该考虑使用cloud functions,而不是直接从客户端更新值。更清楚地说,您可以通过HTTP请求调用函数。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59909594

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档