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

如何在Unity(Android&iOS)中用Firebase实现邮箱6位OTP

Firebase无密码OTP登录及相关问题解决方案

一、原生实现邮箱OTP登录(用noreply@PROJECT_ID.firebase.com,无需第三方)

Firebase Auth内置了邮箱OTP无密码登录能力,完全满足你的需求,不用自己基于Realtime Database造轮子:

控制台配置

  1. 打开Firebase控制台 → 「认证」→「登录方式」,启用「邮箱/密码」和「邮箱链接(无密码登录)」(若用纯OTP,可直接启用「登录代码」功能,需确认SDK版本支持)
  2. 进入「认证」→「模板」,找到「登录代码」或「无密码登录」模板:
    • 编辑邮件主题,比如「【你的项目名】登录验证码」
    • 正文里插入{{otp}}占位符,Firebase会自动替换为6位随机验证码
    • 可上传项目Logo、自定义正文内容,强化正式感

Unity端代码实现

发送OTP

using Firebase.Auth;

// 用户输入的邮箱
string userEmail = "user@example.com";

// 发送登录验证码
FirebaseAuth.DefaultInstance.SendSignInCodeToEmailAsync(userEmail)
    .ContinueWith(task => {
        if (task.IsCompletedSuccessfully) {
            // 验证码已通过noreply@PROJECT_ID.firebase.com发送
            var codeInfo = task.Result;
            // 保存session信息(可选,用于后续验证时的校验)
        } else {
            // 处理错误,比如邮箱格式不正确、发送频率超限等
            Debug.LogError($"发送失败: {task.Exception}");
        }
    });

验证OTP并登录

// 用户输入的6位验证码
string inputOtp = "123456";

FirebaseAuth.DefaultInstance.SignInWithEmailAndCodeAsync(userEmail, inputOtp)
    .ContinueWith(task => {
        if (task.IsCompletedSuccessfully) {
            FirebaseUser user = task.Result;
            // 登录成功,获取用户凭证
            Debug.Log($"登录成功: {user.DisplayName}");
        } else {
            Debug.LogError($"验证失败: {task.Exception}");
        }
    });

二、自定义OTP模板及触发

自定义模板完全在Firebase控制台完成:

  1. 进入「认证」→「模板」,选择对应模板(「登录代码」对应纯OTP登录,「无密码登录」对应链接+OTP的场景)
  2. 编辑模板的主题、正文、Logo:
    • 必须保留{{otp}}占位符,否则无法生成验证码
    • 可添加项目介绍、安全提示等内容,提升用户信任度
  3. 触发无需额外配置,调用上述SendSignInCodeToEmailAsync方法时,Firebase会自动使用你配置的模板发送邮件

三、Firebase Hosting是否提供项目专属邮箱?

不,Firebase Hosting仅提供静态网站托管服务,不包含邮箱托管能力。如果需要使用自定义域名的邮箱(比如noreply@yourdomain.com),必须绑定Google Workspace(原G Suite):

  1. 在Google Workspace中为你的域名创建noreply@yourdomain.com邮箱
  2. 回到Firebase控制台→「认证」→「模板」→「发件人邮箱」,选择「自定义邮箱」并绑定你的Workspace邮箱
  3. 完成DNS验证后,Firebase即可用自定义邮箱发送OTP邮件

四、提升邮箱正式感的低成本方案(无需第三方)

如果不想用Google Workspace,用Firebase自带的noreply@PROJECT_ID.firebase.com也能优化正式感:

  • 在模板中上传项目官方Logo,Firebase支持直接插入图片
  • 邮件主题明确标注项目名称,比如「【XX游戏】登录验证码,5分钟内有效」
  • 正文开头说明邮件用途,比如「这是你的XX项目登录验证码,请勿转发给他人」

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 00:20:39