我正在尝试向昨天活跃在我们平台上的用户发送推送通知,以每天早上以自动方式发送一次,我可以做到。 但是在 4 小时后发送 我无法想象如何在 4 小时后发送它们,就像我在早上 6 点左右发送推送通知一样,然后在上午 10 点左右,然后下午 2 点和然后在下午 6 点左右,但在下午 6 点之后,我不想向用户发送推送通知。我该如何解决这个问题。
基本上,有一次我将查询昨天开始时间和结束时间之间的时间戳,然后我将能够提取昨天的活动用户,然后我能够获得设备令牌,然后我只是发送推送通知。
const start = momentTz()
.tz("Asia/Kolkata")
.subtract(1, "days")
.startOf("day")
.format();
const end = momentTz()
.tz("Asia/Kolkata")
.subtract(1, "days")
.endOf("day")
.format();
const profileSnapshot = await db
.collection("Profiles")
.where("lastQueryFrom", ">=", momentTz(start).valueOf())
.where("lastQueryFrom", "<=", momentTz(end).valueOf())
.get();
const profile = [];
profileSnapshot.forEach((doc) => {
profile.push(doc.data().phoneNumber);
//here i will get the device token and i will run the fcm push notification logic
});
console.log(profile.length);
Firebase 具有计划函数,您可以安排一个间隔来执行您提到的检查并发送推送通知。您可以每 4 小时安排一次。当然,您可以在您提到的时间范围之外提前退出功能。
exports.scheduledFunction = functions.pubsub.schedule('every 5 minutes').onRun((context) => {
// get active users and send push notification
return null;
});