【问题标题】:Sending Flutter FCM notifications on a specified day with Cloud Functions使用 Cloud Functions 在指定日期发送 Flutter FCM 通知
【发布时间】:2025-12-18 07:55:02
【问题描述】:

我有一个应用程序,在添加新文档时,FCM 通知将发送给用户。我现在想要实现的是让用户选择某个日期,然后在该特定日期,用户应该收到通知。

我已阅读带有 Cloud Functions 的 Scheduled Functions 文档,其中显示(使用 cron 时间格式):

exports.scheduledFunctionCrontab = functions.pubsub.schedule('5 11 * * *')
.timeZone('America/New_York') 
.onRun((context) => {
console.log('This will be run every day at 11:05 AM Eastern!');
return null;
});

所以,对我来说,我想要类似的东西:

exports.scheduledFunctionCrontab = functions.pubsub.schedule('selected date from flutter 
 date/time picker ')
.timeZone('America/New_York') 
.onRun((context) => {

 'SEND OUT FCM notification'
 ;
  return null;
  });

那么我如何将 Flutter 日期/时间转换为 -> 2020-05-31 05:41:42 INTO cron 时间格式 -> 5 4 * * sun 在特定日期发送 FCM 通知

谢谢

【问题讨论】:

  • 能否请您也写下您的“问题”和“问题”是什么?
  • 嗨..我的问题是如何在特定日期通过 Cloud Functions 发送 FCM 通知。问题是我不知道该怎么做:-)。
  • 你能看看这个链接对你有没有帮助fireship.io/lessons/cloud-functions-scheduled-time-trigger
  • 这个值得一看。谢谢 。由于我刚刚开始使用云功能和 firestore /firebase,因此我将不得不深入观看它以获得清晰的理解

标签: firebase flutter cron google-cloud-functions


【解决方案1】:

先清理一些东西:

  1. 没有 API 来创建定时通知。这意味着您无法一次定义通知,然后将其发送到另一个位置。
  2. 您无法从客户端创建具有特定时间执行的调度云函数。这意味着:
exports.scheduledFunctionCrontab = functions.pubsub.schedule('selected date from flutter 
 date/time picker ')

也不行。

解决问题的唯一方法是:

  • 创建一个集合,您可以在其中保存要发送的通知以及发送通知的时间。
  • 创建一个定期运行的云函数,例如每 1 小时运行一次,并检查集合中的通知是否接近当前时间以及是否到了发送通知的时间
  • 在这种情况下发送通知

如果您的用户在几分钟内不需要它,我建议每 1 小时运行一次调度云功能。

【讨论】:

  • 我会按照这个:fireship.io/lessons/cloud-functions-scheduled-time-trigger 看看我是否可以清楚地理解它。谢谢