Xamarin C# 使用FirebaseAuth注册用户返回INVALID_EMAIL错误如何解决
问题排查与解决方案
根因定位
从返回的报错信息可以直接看到错误类型为INVALID_EMAIL,查看请求参数可以发现你提交的邮箱值末尾携带了一个换行符,不符合邮箱格式规范,被Firebase服务端校验拦截:
{"email":"18014384@vcconnect.co.za\n","password":"pass123","returnSecureToken":true}
修复步骤
- 第一步:输入取值时先清理首尾空白字符,修改注册接口的传参代码,对邮箱、密码字段都调用
Trim()方法去除空格、换行、制表符等隐形空白字符:
将原有代码行
var auth = await authProvider.CreateUserWithEmailAndPasswordAsync(txtEmail.Text, txtPassword.Text);
修改为:
var auth = await authProvider.CreateUserWithEmailAndPasswordAsync(txtEmail.Text.Trim(), txtPassword.Text.Trim());
- 第二步:新增前端预校验逻辑,在发送请求前先判断邮箱格式是否合规,减少无效请求:
// 注册逻辑前先做格式校验 string email = txtEmail.Text?.Trim() ?? string.Empty; string password = txtPassword.Text?.Trim() ?? string.Empty; if (!System.Text.RegularExpressions.Regex.IsMatch(email, @"^[^@\s]+@[^@\s]+\.[^@\s]+$")) { await App.Current.MainPage.DisplayAlert("提示", "请输入正确的邮箱格式", "确定"); return; } if (password.Length < 6) { await App.Current.MainPage.DisplayAlert("提示", "密码长度不能少于6位", "确定"); return; }
- 第三步:如果修改后仍有报错,可按以下顺序排查其他可能问题:
- 确认
FirebaseConfig初始化使用的WebAPIkey和Firebase控制台对应项目的Web API密钥完全一致 - 登录Firebase控制台,进入「身份验证」-「登录方式」页面,确认「电子邮件/密码」登录选项已启用
- 检查项目中安装的Firebase Auth相关Nuget包版本,确保和其他Firebase依赖包版本匹配,避免版本兼容冲突
- 确认
效果验证
完成以上修改后重新触发注册操作,即可正常完成用户注册,获取到Firebase返回的身份令牌。
内容的提问来源于stack exchange,提问作者Sanele Mkhonza
相关产品推荐
相关产品推荐

