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

Firebase实时数据库登录遇Newtonsoft.Json.JsonReaderException错误求助

解决Firebase实时数据库登录时的JsonReaderException错误

错误信息

Newtonsoft.Json.JsonReaderException: 'Unexpected character encountered while parsing value: <. Path '', line 0, position 0.'

出错代码

FirebaseResponse response = client.Get("users/" + txtUser.Text);

Utilizador resUser = response.ResultAs<Utilizador>(); // 该行报错

问题原因

这个错误的核心是:请求Firebase接口返回的内容不是合法的JSON数据,而是以<开头的HTML格式错误页面(比如404资源不存在、403权限不足、500服务器错误等),导致Newtonsoft.Json无法正常解析。

解决方案

  1. 检查请求路径正确性
    确认"users/" + txtUser.Text拼接后的路径和Firebase实时数据库中的用户节点路径完全匹配,注意大小写、特殊字符转义,同时检查用户输入的txtUser.Text是否为空或包含非法字符。

  2. 查看原始响应定位问题
    在解析前先获取并打印响应的原始内容,直接确认返回的是什么:

    string rawContent = response.Content;
    Console.WriteLine(rawContent);
    

    如果返回的是HTML错误页,能直接看到错误码和原因——比如404说明该用户不存在,403说明客户端没有读取该节点的权限。

  3. 检查Firebase数据库权限规则
    登录Firebase控制台查看实时数据库规则,确保允许当前客户端读取users/{userId}节点。比如规则设置为仅认证用户可读取时,未登录的请求会被拒绝,返回权限错误的HTML页面。

  4. 先判断响应状态再解析
    不要直接解析响应,先判断请求是否成功再处理:

    FirebaseResponse response = client.Get("users/" + txtUser.Text);
    if (response.StatusCode == System.Net.HttpStatusCode.OK)
    {
        Utilizador resUser = response.ResultAs<Utilizador>();
        // 执行后续登录逻辑
    }
    else
    {
        // 根据状态码提示用户,比如"用户不存在"或"权限不足"
        MessageBox.Show("登录失败,请检查账号是否正确");
    }
    
  5. 验证实体类结构匹配
    确保Utilizador类的属性名称、数据类型和Firebase中用户节点的JSON结构完全对应(注意大小写是否敏感)。不过这是次要排查项,当前错误是JSON格式本身异常,优先解决前面的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 00:10:27