firebase - 使用firebase云功能和firestore实现发送/接受好友请求的通知系统
问题描述
我正在尝试实现一个通知系统来处理类似于朋友请求通知的通知。例如,我写了我想向其发送好友请求的人的电子邮件。然后点击发送请求。我很困惑在那之后,究竟会发生什么?
现在我在想,在单击发送请求时,我会在“通知”集合中的云 Firestore 中创建一个文档,然后调用一个云函数,该函数使用该电子邮件向用户发送推送通知。用户现在可以选择接受或拒绝请求。选择这些动作中的任何一个都会更新通知文档,该文档将再次调用云功能,将两个用户添加到彼此的朋友列表中并通知第一个用户。
所以我的问题是: -
- 这种方法在生产应用程序中实施是否合理,因为它涉及许多云函数调用和文档读取和写入?或者更好的问题——你将如何在生产级应用程序中实现这样的东西?
- 是否有任何其他安全的方法(在某种意义上,没有人应该能够通过更改前端的代码来破坏这个过程)和高效的(更少的读/写/调用)?
- 这可以在不创建任何文档的情况下完成吗?纯粹通过云功能?那么它是否能够捕获其他用户对好友请求的响应并进行必要的更改?
解决方案
对于您描述的问题,我会以您正在做的方式处理它,实际上这里并没有那么多操作,因为您将有 2 次 Firestore 写入和 2 次云函数调用,更不用说根据用户的操作,第二次调用可能需要很长时间才能被触发,因此您不需要比这更有效率。
对于你最后一个问题,我想说如果没有信息通过 Firestore 就很难实现这个,因为你需要存储对好友请求的接受,并且出于上述相同的原因,你需要将该信息存储在某个地方,甚至如果暂时。
推荐阅读
- bokeh - 选择下拉选项后,如何在绘图上“更改.emit”或“触发更改”?
- javascript - 尝试使用页面顶部的下拉菜单修复导航栏
- java-11 - 尝试加载新窗口 fxml 时出现 LoadException
- java - Java 失败:错误(无法分配内存),代码为 12
- php - 如何使用 eloquent 导航到集合中的集合
- markdown - 将序列图集成到markdown文件中
- php - PHP:想把变量和字符串放在mysql中
- reactjs - for 循环内的 setState 不更新状态:React+Typescript
- c - 垃圾邮件执行时C函数/对象没有返回一致的输出
- docker - kubernetes 服务 - 可以在 3 个不同的变量值(端口、目标端口、节点端口)上使用相同的端口值(即 10002)吗?