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

C# Firebase检测用户是否存在 新用户注册空引用异常如何解决

问题根因

当待注册的邮箱不存在于Firebase数据库中时,GetTaskAsync请求返回的结果为空,调用ResultAs<Data>()得到的result对象为null,此时直接访问result.Email属性就会抛出NullReferenceException。

修复方案

你只需要在访问result的属性前做空值判断即可,修改后代码如下:

FirebaseResponse response = await client.GetTaskAsync("Information/" + Emailtextbox.TextName);
Data result = response.ResultAs<Data>();
// 先判断result是否为空,为空说明邮箱不存在,可以走注册逻辑
if (result != null && Emailtextbox.TextName == result.Email)
{
    MessageBox.Show("Email exists");
} 
else
{
    var data = new Data
    {
        Email = Emailtextbox.TextName,
        Fullname = Fullnametextbox.TextName,
        Password = EncryptSHA.GetShaData(PasswordTextbox.TextName)
    };
    // 补充你原本的data写入Firebase的逻辑即可
}

额外优化建议

  • 可以加一层response本身的空值和请求状态校验,避免请求失败时也触发空引用:
if (response == null || response.StatusCode != System.Net.HttpStatusCode.OK)
{
    MessageBox.Show("邮箱校验请求失败,请稍后重试");
    return;
}
  • 注意不要直接存储明文密码,你当前用了SHA加密,建议额外加盐处理,提升密码存储安全性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 22:57:01