You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何无需Firebase控制台创建FCM周期性通知?突破数量限制

手动搭建FCM周期性定向通知方案

核心思路

绕开FCM控制台最多10个周期性通知的限制,通过后端服务+FCM API组合,自定义实现受众筛选逻辑、周期性触发规则,完全掌控推送的定向维度和频率。

具体实现步骤

1. 维护用户核心数据

在后端数据库中存储用于定向筛选的关键用户信息:

  • 用户唯一ID与关联的FCM registration_token
  • 用户属性(地域、会员等级、偏好标签等)
  • 最后互动时间戳(如最后打开APP、点击通知的时间)
  • 令牌有效性标记(定期更新失效令牌)

2. 编写受众筛选逻辑

根据业务需求编写筛选规则,以「推送2天未活跃用户」为例,示例SQL查询:

SELECT registration_token FROM users 
WHERE last_interaction_time < UNIX_TIMESTAMP() - 86400*2
AND is_active = 1;

可自由组合多维度条件,比如「2天未活跃的VIP用户」「某地域3天未互动用户」等。

3. 配置周期性触发任务

用后端定时工具触发推送逻辑:

  • 后端框架自带定时功能(如Spring的@Scheduled、Node.js的node-schedule)
  • 系统级定时服务(如Linux cron、云函数定时触发器)
    根据需求设定触发频率,比如每天凌晨执行一次未活跃用户推送。

4. 调用FCM API发送通知

通过FCM HTTP API批量推送,示例伪代码:

import requests

FCM_SERVER_KEY = "你的服务器密钥"
FCM_API_URL = "https://fcm.googleapis.com/fcm/send"

def send_batch_notification(tokens, title, body):
    payload = {
        "registration_ids": tokens,
        "notification": {
            "title": title,
            "body": body
        },
        "data": {"type": "re-engagement"}
    }
    headers = {
        "Authorization": f"key={FCM_SERVER_KEY}",
        "Content-Type": "application/json"
    }
    response = requests.post(FCM_API_URL, json=payload, headers=headers)
    return response.json()

# 调用示例:传入筛选出的令牌列表
inactive_user_tokens = ["token_xxx", "token_yyy", ...]
send_batch_notification(inactive_user_tokens, "好久不见!", "快来看看最新内容~")

5. 处理推送反馈

  • 解析FCM返回的响应,标记失效的registration_token,后续不再推送
  • 记录推送日志,统计送达率、点击率等效果数据

注意事项

  • 遵守FCM发送限流规则,大量令牌建议分批次推送
  • 确保用户数据处理符合隐私合规要求
  • 定期测试筛选逻辑和推送流程,避免漏推或误推

内容的提问来源于stack exchange,提问作者Kai Tera

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 14:45:25