小程序一次性订阅消息。订阅后,您可以发送 1 条消息。如果订阅10次,则可以发送10条消息。
1.初步总结,完成从订阅到发送的流程
订阅部分请参考实战分享:小程序云开发。通过玩转订阅消息,可以订阅小程序,存储到云开发数据库中,并使用定时触发器定时发送消息。
完成上述步骤后,您应该已经在云端执行此操作:
定时任务查询所有订阅消息并循环发送。发送消息后,根据_id将状态标记为已发送。
但上述订阅消息只适合一次订阅。查看源代码。即使为了避免重复,同一用户也不能多次订阅。
我们需要做的逻辑是,用户可以多次订阅同一条一次性订阅消息,并且订阅多少次就发送多少次。
2.修改查询,支持每个用户只发送一个
保存代码不需要修改。用户多次订阅时会插入多条记录。需要修改查询代码。当前查询代码如下:
const messages = await db .collection('messages') .where({ done: false, }) .get();
所有未发送的消息均已被查询。此时,如果用户订阅了两次,他就会查出并收到2条订阅消息。
我们使用聚合