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

Django集成Firebase时如何从HTTPError中获取具体错误类型信息

解决方案

你可以通过捕获HTTP异常、解析错误响应JSON、映射中文提示的方式实现需求,参考实现如下:

核心实现代码

import requests
from django.http import JsonResponse

def register_view(request):
    # 此处省略参数校验、email与password字段提取逻辑
    try:
        # 调用Firebase Auth创建用户
        user = auth_.create_user_with_email_and_password(email, password)
        return JsonResponse({"status": "success", "msg": "注册成功"})
    except requests.exceptions.HTTPError as e:
        # 解析错误响应内容
        error_data = e.response.json()
        full_error_msg = error_data["error"]["message"]
        # 提取错误标识
        error_code = full_error_msg.split(" : ")[0].strip()
        # 错误标识与中文提示映射表,可按需扩展
        error_msg_map = {
            "WEAK_PASSWORD": "密码强度过弱,长度不得少于6位",
            "EMAIL_EXISTS": "该邮箱已被注册,请直接登录或更换邮箱",
            "INVALID_EMAIL": "邮箱格式不符合规范,请检查后重试",
            "OPERATION_NOT_ALLOWED": "当前平台暂未开放邮箱注册功能",
            "TOO_MANY_ATTEMPTS_TRY_LATER": "操作过于频繁,请稍后再尝试"
        }
        tip_msg = error_msg_map.get(error_code, "注册失败,请检查输入信息后重试")
        return JsonResponse({"status": "fail", "msg": tip_msg}, status=400)

说明

  • 上述代码会自动从Firebase返回的错误信息中提取WEAK_PASSWORD这类通用错误标识
  • 你可以根据业务需求自由修改映射表中的提示文案,也可以新增其他场景的错误码映射

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 01:00:00