我正在构建一个聊天应用程序,当在聊天组中发送新消息时会推送通知。每个聊天组在聊天组集合中都有自己的文档,每个文档内部都有一个称为消息的集合。我使用云功能来监听消息集合中的更改。当用户添加新文档时,我需要查询聊天组中除发件人以外的所有成员的用户文档,以获取设备令牌,因此可以推送通知。但是,每次有人发送消息时重复此过程都会导致大量读取。即使是小型的聊天应用程序,消息的数量也很容易攀升至数千,因此阅读量也很大。
为了节省金钱,我决定创建文档以在同一文档中存储多达1000个用户的多个用户令牌。由于单个文档的大小限制,我将其限制为1000,但是我将彼此关联的用户的设备令牌放在同一文档中,因为它们可能在同一聊天组中。我预计读取次数会大大减少,因为我只能查询一个或两个文档以将所有用户令牌都放在一个大聊天组中,而不是在一个文档中查询一个令牌。尽管在这里听起来一切都很好,但我无法克服担心。我想听听您的宝贵意见。这是有效的解决方法吗?这里可能有什么问题?
在单个文档中存储多个内容是减少文档读取次数的有效方法。您似乎已经考虑到了一些注意事项,但是还有更多注意事项: