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

Django项目中Firebase Admin的send_multicast方法无运行日志问题求助

Django 项目 Firebase Admin SDK send_multicast 日志缺失解决方案

1. 调整Firebase Admin SDK日志输出等级

Firebase Admin SDK默认只输出警告及以上级别的日志,底层请求、响应细节默认不会打印,需要在Django的settings.py中添加日志配置,开启DEBUG级日志:

LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'loggers': {
        'firebase_admin': {
            'handlers': ['console'],
            'level': 'DEBUG',
            'propagate': True,
        },
    },
    'handlers': {
        'console': {
            'class': 'logging.StreamHandler',
        },
    },
}

2. 补全响应错误详情打印逻辑

你当前代码仅打印了成功/失败总数,单个token的发送错误详情需要主动遍历返回结果获取,修改后的代码示例如下:

import logging

logger = logging.getLogger(__name__)

message = messaging.MulticastMessage(
    data={
        'data': str(self.data)
    },
    tokens=registration_tokens,
)
logger.info('待发送消息: %s', message)
# 调试阶段可加dry_run=True参数,不会真实推送但返回完整校验结果
response = messaging.send_multicast(message)
logger.info('发送结果:成功%s条,失败%s条', response.success_count, response.failure_count)

# 打印每个token的发送详情
for idx, resp in enumerate(response.responses):
    if resp.success:
        logger.debug('token %s 发送成功,消息ID: %s', registration_tokens[idx], resp.message_id)
    else:
        logger.error('token %s 发送失败,错误信息: %s', registration_tokens[idx], resp.exception)

3. 替换print为logging模块输出

生产环境部署时(使用Gunicorn、uWSGI等容器),print输出的内容默认不会被捕获到服务日志中,统一使用logging模块输出才能保证日志可以正常查询。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.10 12:30:03