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

Firebase Admin .Net无效邮箱异常处理方案咨询

解决Firebase Admin SDK for .Net邮箱格式异常捕获问题

问题根源

Firebase Admin SDK for .Net中,用户操作抛出的异常类型是FirebaseException(而非FirebaseAuthException),需要通过异常对象的ErrorCode属性判断具体错误类型。邮箱格式无效对应的错误码为invalid-email。

修改后的代码

public async Task<string> RegisterAsync(RegisterData registerData)
{
    try
    {
        var userArgs = new UserRecordArgs()
        {
            Email = registerData.Email,
            Password = registerData.Password,
            DisplayName = registerData.Name,
            EmailVerified = true,
        };
        UserRecord userRecord = await FirebaseAuth.DefaultInstance.CreateUserAsync(userArgs);
        Users newuser = new Users()
        {
            Email = userRecord.Email,
            Uid = userRecord.Uid,
            Name = userRecord.DisplayName,
            LastSignInDate = userRecord.UserMetaData.LastSignInTimestamp,
            CreationDate = userRecord.UserMetaData.CreationTimestamp // 修正:原代码拼写错误且获取时间字段错误
        };
        _IUserRepository.RegisterEF(newuser);

        return userRecord.Uid;
    }
    catch (FirebaseException ex)
    {
        // 捕获Firebase专属异常,匹配错误类型
        if (ex.ErrorCode == "invalid-email")
        {
            // 执行邮箱格式无效的特定操作,比如返回自定义提示
            return "邮箱格式无效,请输入正确的邮箱地址";
        }
        // 其他Firebase错误返回默认提示
        return ex.Message;
    }
    catch (Exception ex)
    {
        // 处理非Firebase的通用异常
        return ex.Message;
    }
}

关键说明

  • 优先捕获FirebaseException,通过ErrorCode匹配具体场景:
    • invalid-email:邮箱格式无效
    • email-already-exists:邮箱已被注册
    • weak-password:密码强度不足(若启用验证)
  • 修正原代码两处问题:
    1. 方法名拼写错误:RegiserAsynh改为RegisterAsync
    2. 用户创建时间字段错误:LastRefreshTimestamp替换为CreationTimestamp(正确获取用户创建时间)

内容的提问来源于stack exchange,提问作者казённый унитаз

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 04:23:32