使用Firebase云函数和Firestore实现发送/接受好友请求的通知系统

lymnna71  于 2022-11-25  发布在  其他
关注(0)|答案(2)|浏览(126)

我正在尝试实现一个通知系统来处理类似于好友请求通知的通知。例如,我写了我想向其发送好友请求的人的电子邮件。然后点击发送请求。我很困惑,在那之后,到底会发生什么?
现在我在想,单击send request,我会在cloudfirestore的"notifications"集合中创建一个文档,该云服务器随后将调用云功能,该云功能将推送通知与该电子邮件一起发送给用户。选择这些操作中的任何一个都将更新通知文档,该通知文档将再次调用云功能,该云功能将两个用户添加到彼此。S的朋友列表并通知第一用户。
所以我的问题是:-
1.由于这种方法涉及到许多云函数调用和文档读写,因此在生产应用中实现这种方法是否合理?或者更好的问题是-如何在生产级应用中实现这种方法?
1.是否还有其他安全(在某种意义上说,任何人都不应该通过更改前端的代码来破坏这个过程)和高效(读/写/调用次数更少)的方法?
1.这是否可以在不创建任何文档的情况下完成?仅仅通过云功能?那么它是否能够捕获其他用户对好友请求的响应并进行必要的修改?

monwx1rj

monwx1rj1#

对于您所描述的问题,我将以您正在做的方式来处理它,实际上这里没有太多的操作,因为您将有2次Firestore写入和2次云函数调用,更不用说第二次调用可能需要很长时间才能触发,这取决于用户的操作,因此您不需要比这更高效。
对于您的最后一个问题,我想说的是,如果没有通过Firestore的信息,将很难实现这一点,因为您需要存储对好友请求的接受,出于上面提到的相同原因,您需要将该信息存储在某个地方,即使是临时的。

06odsfpq

06odsfpq2#

我知道我迟到了,但也许这会对别人有帮助。
我添加发送-接收好友请求系统的方式如下:
例如:

我:{姓名:“约翰”,身份证:“20”};
陌生人:{姓名:'Lucas',身份:'50'}

当我点击添加好友(对陌生人)时我会调用函数:
如果您是一个stranger.id。
此函数将把ME添加到他的receivedFriendReqestes文档中,以便他能够获取该文档并检查向他发送请求的用户。
因此,在通知组件中,您只需获取您的 recievedFriendRequestes 文档,Map所有用户,并创建函数来接受每个用户的好友请求。
当你点击接受的时候,你需要从recievedFriendRequestes中删除那个用户,并把两个用户都存储在“friends”集合中。你可以用你自己的方式来做,但是我给予了我认为最好的例子。

相关问题