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

如何使用Go版Firebase Admin SDK处理错误并获取错误码?

Firebase Admin SDK Go 错误码获取与针对性处理

Firebase Admin SDK for Go 返回的 Auth 错误可以通过类型断言转换为 SDK 内置的 *auth.Error 类型,从而直接访问其 Code 字段做针对性处理。

修改后的代码示例

import (
    "errors"
    "fmt"

    "firebase.google.com/go/auth"
)

// ... 你的原有业务代码 ...

fbUser, err := s.auth.CreateUser(ctx, fbUserParams)
if err != nil {
    // 断言错误为Firebase Auth专属错误类型
    if fbAuthErr, ok := err.(*auth.Error); ok {
        // 根据错误码分支处理
        switch fbAuthErr.Code {
        case auth.EmailAlreadyExists:
            return nil, errors.New("[email] already exists")
        case auth.InvalidEmail:
            return nil, errors.New("邮箱格式无效")
        case auth.WeakPassword:
            return nil, errors.New("密码强度不足")
        // 可根据业务需求添加更多错误码分支
        default:
            return nil, fmt.Errorf("Firebase认证错误: %s", fbAuthErr.Message)
        }
    }
    // 处理非Firebase Auth类的错误
    return nil, fmt.Errorf("未知错误: %v", err)
}

关键说明

  • *auth.Error 是 SDK 定义的标准错误结构体,包含 Code(预定义常量)、Message(错误描述)等字段
  • 所有 Auth 相关的错误码常量都在 firebase.google.com/go/auth 包中,比如 auth.EmailAlreadyExists、auth.UserNotFound 等
  • 先通过类型断言过滤出 Firebase Auth 错误,再按错误码分支处理,避免所有错误返回相同提示

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 20:10:50