You need to enable JavaScript to run this app. Django通过Firebase Cloud Messaging发送主题通知的实现求助
优惠活动
大模型
产品
解决方案
定价
更多

Django通过Firebase Cloud Messaging发送主题通知的实现求助

Django FCM 主题通知发送实现方案

你当前使用的FCMNotification(django-fcm核心依赖PyFCM提供)原生支持主题推送能力,无需更换依赖,直接调用对应方法即可。

代码改造步骤

1. 新增主题推送函数

保留原有单设备推送函数,新增如下专用主题推送逻辑:

def send_topic_notification(topic_name, message_title, message_body, extra_data=None):
   try:
      push_service = FCMNotification(api_key=FCM_DJANGO_SETTINGS['FCM_SERVER_KEY'])
      # 调用原生主题推送接口
      result = push_service.notify_single_topic(
          topic_name=topic_name,
          message_title=message_title,
          message_body=message_body,
          data_message=extra_data if extra_data else {}
      )
      return result
   except Exception as e:
      # 建议补充错误日志输出,避免空捕获丢失问题
      print(f"主题推送异常: {str(e)}")
      return None

2. 改造业务视图

修改原有send_noti视图,无需硬编码设备注册码,直接传入目标主题名即可:

def send_noti(request):
    # 替换为实际需要推送的主题名称,需和设备端订阅的主题完全一致
    target_topic = "your_target_topic"
    send_topic_notification(target_topic, "通知标题", "通知正文")
    return JsonResponse({"status": "success"}, safe=False)

注意事项

  • 主题名称仅可包含大小写字母、数字、下划线、连字符、点,不能以特殊字符开头
  • 若需同时向多个主题推送,可调用notify_multiple_topics方法,传入主题列表即可
  • 设备端仅需调用FCM SDK的主题订阅接口完成关联,无需将设备注册码回传后端存储,适配你不想修改现有前端上报逻辑的需求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.25 12:54:04