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

Android Studio 开发中无法从Firebase获取数据问题咨询

问题排查结果

  • 布局加载逻辑错误(首要原因)
    你在onCreateView中执行了两次布局加载:

    1. 通过ViewBinding生成绑定实例binding = FragmentUserprofileBinding.inflate(inflater, container, false)
    2. 手动inflate了一个独立的布局实例View view = inflater.inflate(R.layout.fragment_userprofile, container, false)
      最终返回的是手动inflate的view,所有通过binding对控件的赋值操作都作用在未加载到界面的binding布局上,即便获取到数据也无法显示在当前页面。
      修复方案:删除手动inflate的代码行,最终返回binding.getRoot()即可。
  • FirebaseAuth未初始化
    你声明了FirebaseAuth firebaseAuth;但未初始化,点击退出登录按钮时会触发空指针崩溃,需要在onCreateView中添加初始化代码firebaseAuth = FirebaseAuth.getInstance();。

  • 查询节点硬编码,未使用动态手机号
    你已经通过String x= phoneNoClass.getMobileNoOfDoctor();获取了当前登录医生的手机号,但查询时硬编码写死了节点.child("+919937336406"),如果当前医生手机号不是该值,会查询不到对应节点数据。
    修复方案:将查询节点改为.child(x)。

  • 成功回调逻辑冗余
    当task.isSuccessful()为true时,task.getException()返回值为null,Toast中拼接该值没有实际意义,可直接移除。

  • 需验证的配置项

    1. 确认项目app模块下正确放置了Firebase控制台下载的google-services.json文件
    2. 检查Firebase Realtime Database的读写规则是否开放了读取权限,测试阶段可临时使用以下规则:
{
  "rules": {
    ".read": true,
    ".write": true
  }
}
  1. 确认AndroidManifest.xml中添加了网络权限:
<uses-permission android:name="android.permission.INTERNET" />
  1. 检查Firebase数据库中确实存在DoctorData/[手机号]/name的层级结构,节点名称大小写完全匹配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 23:18:00