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
相关产品推荐
相关产品推荐

