NodeJS Firebase函数用于检查未读消息计数

rt4zxlrg  于 2023-05-17  发布在  Node.js
关注(0)|答案(1)|浏览(164)

以下是Firebase Firestore数据库中的示例集合:

rooms
|-room_1
  |-messages
    |-msg_1
    |-msg_2

在上面的例子中,roomsmessages是集合。每个房间都有一个名为userAccess的字符串数组属性。此属性包含有权访问此文件室的用户uuid的列表。每条消息都有一个seenBy字符串数组属性,该属性保存了已看到此消息的用户的uuid列表。
挑战在于,在每次创建消息后,等待3分钟并确定有权访问此会议室但未看到此消息的用户列表。最终目标是确定每个用户的未读消息的总和,并向另一个服务器发送请求。

**我尝试了什么:**我尝试做一个cronjob,每x分钟检查一次所有用户,但随着用户数量的增加,函数的复杂性也会增加,函数失败的频率也会增加。因此,cronjob选项不是要走的路。

在Firebase Firestore中执行此类任务的正确方法是什么?

xfb7svmp

xfb7svmp1#

您希望这些阵列包含多少用户?

**10?**那么您的云函数将使用except轻松解决您的问题

var unseen = except(room.userAccess, message.seenBy);

一千万?**在没有超时的情况下很难处理,所以我猜架构需要重新设计

相关问题