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

DRF集成Firebase FCM推送 后端无法获取注册令牌问题咨询

问题解答

首先明确核心规则:FCM注册令牌(registration token)无法在后端生成,这是很多刚对接FCM推送的开发者最容易踩的认知误区。
这个令牌是Firebase客户端SDK在用户的真实设备(手机、浏览器等)上本地生成的,和「具体设备+具体安装的应用实例」强绑定,后端没有任何接口可以凭空生成合法可用的令牌,后端的职责只有接收客户端上传的令牌、存储令牌、用存储的令牌调用推送接口发消息。

正确的令牌对接流程

  • 客户端侧(iOS/Android/Web前端)集成对应平台的Firebase Messaging SDK,完成SDK初始化
  • 客户端初始化完成后主动调用SDK提供的获取令牌方法,拿到合法token后,调用你DRF项目编写的上传接口,将token和当前登录用户ID、设备类型等信息绑定后存入数据库
  • 客户端需要监听Firebase SDK的token刷新回调,当应用重装、用户清除应用数据、token过期触发刷新时,要把新的token重新上传到后端,替换数据库里旧的失效token
  • 后端发送推送时,直接从数据库取出对应用户/设备的有效token,调用FCM Admin SDK的发送方法即可

可以参考下面的DRF侧存储设备令牌的最简模型实现:

# models.py
from django.db import models
from django.conf import settings

class FCMDevice(models.Model):
    user = models.ForeignKey(
        settings.AUTH_USER_MODEL,
        on_delete=models.CASCADE,
        related_name="fcm_devices"
    )
    registration_token = models.CharField(max_length=255, unique=True)
    device_type = models.CharField(
        max_length=10,
        choices=[("ios", "iOS"), ("android", "Android"), ("web", "Web")]
    )
    is_active = models.BooleanField(default=True)
    created_at = models.DateTimeField(auto_now_add=True)
    updated_at = models.DateTimeField(auto_now=True)

后续写个对应的DRF序列化器和仅登录用户可访问的接口,接收客户端上传的token即可。

管理后台发测试通知报错的排查方向

从你提供的报错信息来看,核心错误为Requested entity was not found,按优先级排查以下问题即可:

  1. 优先检查你填的测试token是否有效:如果你填的是自己随便编的假token、或者是已经失效的旧token,必然会报这个错。必须用客户端SDK真实生成的、和当前Firebase项目匹配的有效token才能测试成功
  2. 检查Firebase Admin SDK初始化配置是否正确,参考标准初始化代码:
import firebase_admin
from firebase_admin import credentials, messaging

# 替换为你从Firebase后台下载的服务账号密钥文件的本地路径
cred = credentials.Certificate("path/to/your/firebase-service-account-key.json")
if not firebase_admin._apps:
    firebase_admin.initialize_app(cred)

要确保你用的服务账号密钥,和客户端集成SDK时用的是同一个Firebase项目,跨项目的token完全无法使用
3. 检查对应云项目下的Firebase Cloud Messaging API是否已经启用,不要用已经废弃的Legacy Cloud Messaging接口
4. 如果用真实有效token测试仍然报错,就检查你使用的第三方DRF推送包(如果你是用第三方包对接FCM而非自己实现Admin SDK逻辑)的版本是否过旧,配置项是否和包要求的一致。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.31 20:33:17