用于持有移动注册令牌的最佳数据结构



上下文:
我正在构建一个以Firebase为后端的生日提醒移动应用程序。我正在考虑使用定时云功能向在特定日期过生日的用户发送通知。我正在考虑将Firestore中的生日数据保存在365个单独的文档中
例如:
Jan1-[user1,user2,user3…]
Jan2-[user4,user5…]

Dec31-[userX,userY,userZ…]

我看到的优势是云功能只需要读取特定文档(文档名称可以从当前日期识别)
这是一种可扩展的方法吗
在Firebase/GCP中是否有更好的选项来实现此功能

我正在考虑使用定时云功能发送通知。

这是个好主意。

我正在考虑将Firestore中的生日数据保存在365个单独的文档中。

这也是一个非常好的主意,但只有当文档保持在最大限制之下时,它才会起作用。根据有关使用和限制的官方文件:

文档的最大大小:1 MiB(1048576字节)

如您所见,单个文档中的数据总量限制为1MIB。当我们讨论存储文本时,您可以存储相当多的文本。但是,不要将UID存储为单独的字段,最好创建一个类型为array的字段,在其中可以添加所有UID。因此,您可以每天安排一次云功能,读取阵列的内容并发送通知。

如果您认为可以达到1MIB,那么我建议您创建两个文档,一个用于从am开始的UID,另一个用于nz开始的UID。如果这也不起作用,创建三个文档,依此类推

虽然@MahdiMenacer会起作用,但这是一个非常昂贵的解决方案,因为您必须为查询返回的每个文档支付读取操作费用。在上面的解决方案中,您只需支付一份文档的阅读费用,如果真的有必要,则只需支付两份。

最新更新