首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Firebase云函数国际象棋游戏Swift

Firebase云函数国际象棋游戏Swift
EN

Stack Overflow用户
提问于 2020-09-27 02:23:42
回答 1查看 66关注 0票数 0

我正在制作一个有Firebase后端的国际象棋应用程序,我正在使用云firestore和云函数。基本上,我使用node 8来避免云函数上的计费问题,我可以调用和触发,但我不能考虑如何在另一台设备上而不是我自己的设备上进行操作。

在认证和登录之后,用户进入一个大厅,该大厅是一个tableViewController,并且只显示当前登录的用户。

我想要实现的是,通过点击某一行,点击它的用户会得到一个提示,说明他是接受挑战还是拒绝挑战。在此基础上,我继续进行游戏或做一些其他的事情。

问题是,如何在另一个用户的设备上触发此警报?

我也看过一些帖子,说可以在文档上使用snapshotListener,但我再次遇到了理解如何在另一台设备上触发警报的问题。如果你还有其他好的想法,请分享!

感谢您的反馈!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-09-27 07:15:01

我认为快照监听器真的是唯一的选择。您可以使用其他Firebase服务,但这些不是合适的工具。考虑创建一个集合,也许将其称为请求:

代码语言:javascript
复制
[requests]
    <userId-userId> (recipientUserId-initiatorUserId)
        initiator: string
        recipient: string
        date: date

每个用户都有一个快照侦听器,该侦听器侦听此集合,其中他们自己的userId等于recipient。例如,您可以添加一个日期字段,以便按最近的日期对列表进行排序。当一个用户想要质询另一个用户时,他们需要做的就是在这个集合中创建一个文档:

代码语言:javascript
复制
<userId-userId> (recipientUserId-initiatorUserId)
    initiator: myUserId
    recipient: theirUserId
    date: now

收件人的客户端将立即看到此文档。

您可以在此文档中包含装饰性数据,如发起人的显示名称或其头像的路径。但是这些数据在呈现时可能已经过时了,因此另一种方法是使用userId从数据库中获取修饰数据。您也可以自动生成文档ID,但是如果您配置它(如下所示),它可以使删除等操作变得更简单。您还可以将userIds配置为字母数字,以便在两个用户之间只能存在一个请求;但是,如果它们同时彼此请求,其中一个将覆盖另一个,您必须处理这种潜在的边缘情况。需要考虑的事情有很多,但这只是起点。

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

https://stackoverflow.com/questions/64081141

复制
相关文章

相似问题

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