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

Firebase Auth SendEmailVerificationAsync调用报错:收件人邮箱无效

排查Firebase Auth邮件验证发送失败(提示邮箱无效)的步骤

我之前在Unity集成Firebase Auth时也碰到过类似的坑,结合你描述的情况(用户创建/登录正常、控制台可见用户,但发送验证邮件时报错邮箱无效),给你几个实用的排查方向:

  • 确认当前用户对象的邮箱准确性
    创建用户后,别直接用本地输入的邮箱字符串,一定要从Firebase返回的用户对象中获取邮箱。你可以在调用验证前打印日志确认:

    Debug.Log($"当前登录用户邮箱:{FirebaseAuth.DefaultInstance.CurrentUser.Email}");
    

    有时候会因为本地缓存或异步同步问题,导致获取的邮箱值异常,这一步能快速排除这个低级错误。

  • 检查Firebase控制台的邮件配置
    登录Firebase控制台,进入「Authentication」→「Templates」→「Email verification」:

    • 确认邮件模板处于启用状态,没有被误关闭;
    • 检查模板中的发送域名、邮件内容是否合规,有没有包含可能被邮件服务商拦截的内容;
    • 如果你自定义了SMTP服务,要确认SMTP配置的账号、密码、端口都是正确的,默认使用Firebase自带SMTP的话可以跳过这步。
  • 处理SDK版本的同步延迟问题
    你使用的Firebase Unity SDK 6.15.2是比较旧的版本,这个版本存在一个已知的小问题:用户创建成功后立即调用SendEmailVerificationAsync(),可能因为用户数据还没完全同步到Firebase后端,导致后端识别邮箱异常。
    解决办法是先刷新用户信息再发送:

    try
    {
        await FirebaseAuth.DefaultInstance.CurrentUser.ReloadAsync();
        await FirebaseAuth.DefaultInstance.CurrentUser.SendEmailVerificationAsync();
    }
    catch (FirebaseException ex)
    {
        Debug.Log($"邮件发送失败:错误码 {ex.ErrorCode},详情:{ex.Message}");
    }
    

    也可以尝试延迟1-2秒再调用验证接口,给后端留足同步时间。

  • 测试不同邮箱域名,排查服务商拦截
    有些邮箱服务商(尤其是小众域名或企业邮箱)可能会拦截Firebase的验证邮件,甚至直接返回“邮箱无效”的错误给Firebase后端。你可以换几个主流域名的邮箱(比如Gmail、Outlook、QQ邮箱)测试,看看是不是特定域名的问题。

  • 查看Firebase的详细错误日志
    除了Unity控制台的错误信息,你还可以:

    1. 在Firebase控制台的「Authentication」→「Users」页面,找到对应用户,查看该用户的操作日志,有没有更详细的邮件发送失败原因;
    2. 捕获FirebaseException的错误码,不同的错误码对应不同的问题(比如权限不足、后端服务故障等),能帮你精准定位。

如果以上步骤都排查完还是没解决,建议考虑升级Firebase Unity SDK到与Unity 2019.4兼容的较新版本(注意查看官方兼容性说明),旧版本的一些bug可能已经在后续版本中修复了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.08 16:17:34