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

使用FirebaseRecyclerOptions无法获取Firebase数据库全部数据求助

问题分析

你的查询直接指向RegParkingArea节点,但该节点的直接子节点是用户UID,真正需要展示的RegisterParking数据在每个UID节点下方。当前代码会尝试将每个UID节点本身解析为RegisterParking对象,导致无法正确获取数据;另外可能存在未启动适配器监听的问题。

解决方案

1. 匹配实体类与数据库结构

确认RegisterParking类的字段与数据库中UID节点下的字段完全对应(包括字段名、数据类型),并且必须包含无参构造函数和完整的getter/setter方法(Firebase依赖这些完成数据序列化/反序列化)。示例代码:

public class RegisterParking {
    private String parkingName;
    private String address;
    // 补充数据库中对应的其他字段

    // 必须保留无参构造函数
    public RegisterParking() {}

    // 带参构造函数(可选)
    public RegisterParking(String parkingName, String address) {
        this.parkingName = parkingName;
        this.address = address;
    }

    // 生成所有字段的getter和setter
    public String getParkingName() { return parkingName; }
    public void setParkingName(String parkingName) { this.parkingName = parkingName; }
    public String getAddress() { return address; }
    public void setAddress(String address) { this.address = address; }
}

2. 启动适配器的生命周期监听

FirebaseRecyclerAdapter需要在页面可见时启动监听,不可见时停止,否则无法获取实时数据。在Activity或Fragment中添加以下代码:

@Override
protected void onStart() {
    super.onStart();
    voPListAdapter.startListening();
}

@Override
protected void onStop() {
    super.onStop();
    voPListAdapter.stopListening();
}

3. 检查数据库读取权限

确保Firebase数据库规则允许读取RegParkingArea节点的数据。测试阶段可临时设置开放规则(上线前务必修改为安全规则):

{
  "rules": {
    ".read": true,
    ".write": true
  }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 04:15:25