我正在尝试实现一个通知系统来处理类似于好友请求通知的通知。例如,我写了我想向其发送好友请求的人的电子邮件。然后点击发送请求。我很困惑,在那之后,到底会发生什么?
现在我在想,单击send request,我会在cloudfirestore的"notifications"集合中创建一个文档,该云服务器随后将调用云功能,该云功能将推送通知与该电子邮件一起发送给用户。选择这些操作中的任何一个都将更新通知文档,该通知文档将再次调用云功能,该云功能将两个用户添加到彼此。S的朋友列表并通知第一用户。
所以我的问题是:-
1.由于这种方法涉及到许多云函数调用和文档读写,因此在生产应用中实现这种方法是否合理?或者更好的问题是-如何在生产级应用中实现这种方法?
1.是否还有其他安全(在某种意义上说,任何人都不应该通过更改前端的代码来破坏这个过程)和高效(读/写/调用次数更少)的方法?
1.这是否可以在不创建任何文档的情况下完成?仅仅通过云功能?那么它是否能够捕获其他用户对好友请求的响应并进行必要的修改?
2条答案
按热度按时间monwx1rj1#
对于您所描述的问题,我将以您正在做的方式来处理它,实际上这里没有太多的操作,因为您将有2次Firestore写入和2次云函数调用,更不用说第二次调用可能需要很长时间才能触发,这取决于用户的操作,因此您不需要比这更高效。
对于您的最后一个问题,我想说的是,如果没有通过Firestore的信息,将很难实现这一点,因为您需要存储对好友请求的接受,出于上面提到的相同原因,您需要将该信息存储在某个地方,即使是临时的。
06odsfpq2#
我知道我迟到了,但也许这会对别人有帮助。
我添加发送-接收好友请求系统的方式如下:
例如:
我:{姓名:“约翰”,身份证:“20”};
陌生人:{姓名:'Lucas',身份:'50'}
当我点击添加好友(对陌生人)时我会调用函数:
如果您是一个stranger.id。
此函数将把ME添加到他的receivedFriendReqestes文档中,以便他能够获取该文档并检查向他发送请求的用户。
因此,在通知组件中,您只需获取您的 recievedFriendRequestes 文档,Map所有用户,并创建函数来接受每个用户的好友请求。
当你点击接受的时候,你需要从recievedFriendRequestes中删除那个用户,并把两个用户都存储在“friends”集合中。你可以用你自己的方式来做,但是我给予了我认为最好的例子。