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

Android Studio中Firebase第三方登录(Facebook/Google)返回空值致崩溃

问题分析与解决方案

首先要纠正一个误解:你提到的Firebase CreateNewUser() 方法并不是这次崩溃的直接原因。从Logcat的致命错误日志可以明确看到,崩溃是RecyclerView的VideoAdapter中发生了空指针异常——在VideoAdapter.java的第114行,你尝试调用一个null对象的toString()方法。

具体排查与解决步骤:

  1. 定位问题代码
    打开你的VideoAdapter.java文件,找到第114行,查看是哪个对象在调用toString()时为null。通常这种情况是你从数据源(比如视频列表)中获取的某个字段未初始化,或者列表中的元素本身就是null。

  2. 检查数据源完整性
    确认你传给VideoAdapter的数据集(比如List<Video>)中的每个元素都不为null,并且你要展示的所有字段(比如视频标题、时长、URL等)都已经被正确赋值,没有出现null的情况。如果这个列表是在Firebase登录成功后加载的,还要检查Firebase数据读取逻辑是否正确,确保从数据库获取的字段都能正常解析。

  3. 添加空值防护逻辑
    在调用toString()之前,必须先判断对象是否为null,避免空指针异常。举个修改示例:

    // 原崩溃代码(示例):直接调用toString()未做判断
    holder.videoTitleTxt.setText(mVideoList.get(position).getTitle().toString());
    
    // 修改后:添加空值判断
    Video currentVideo = mVideoList.get(position);
    if (currentVideo != null) {
        String videoTitle = currentVideo.getTitle();
        // 用三元运算符处理空值,或者设置默认文本
        holder.videoTitleTxt.setText(videoTitle != null ? videoTitle : "未命名视频");
    } else {
        // 处理列表元素为null的情况
        holder.videoTitleTxt.setText("暂无数据");
    }
    
  4. 验证Firebase登录流程
    解决完适配器的空指针问题后,再重新测试Firebase登录流程。如果此时仍然出现创建用户失败的情况,可以单独排查CreateNewUser()的逻辑:比如检查Firebase控制台是否开启了对应登录方式、是否处理了注册时的异常(比如邮箱格式错误、密码长度不符合要求等)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 07:04:21