如何使用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
相关产品推荐
相关产品推荐

