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

如何通过Map<String, Object>从Firebase获取复选框上传的数据

实现方案

1. 获取TextView实例

先在代码中绑定要显示状态的TextView:

TextView approvalStatusTv = findViewById(R.id.your_textview_id);

(替换your_textview_id为你布局文件中对应的TextView ID)

2. 解析Firebase返回的Map数据

拿到Map<String, Object> map后,通过判断键的存在性区分审批状态,再将对应值设置到TextView:

if (map != null) {
    String statusContent = "";
    // 判断是否为批准状态
    if (map.containsKey("qDepartmentHeadApproval")) {
        statusContent = (String) map.get("qDepartmentHeadApproval");
    } 
    // 判断是否为拒绝状态
    else if (map.containsKey("rDepartmentHeadApproval")) {
        statusContent = (String) map.get("rDepartmentHeadApproval");
    }
    // 更新TextView内容
    approvalStatusTv.setText(statusContent);
} else {
    // 数据为空时显示默认提示
    approvalStatusTv.setText("暂无审批记录");
}

3. 完整结合Firebase监听的代码示例

如果是在Firebase的ValueEventListener中处理,完整代码如下:

// 替换为你的Firebase节点路径
DatabaseReference approvalRef = FirebaseDatabase.getInstance().getReference("approval_records/your_record_id");

approvalRef.addValueEventListener(new ValueEventListener() {
    @Override
    public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
        TextView approvalStatusTv = findViewById(R.id.your_textview_id);
        Map<String, Object> map = (Map<String, Object>) dataSnapshot.getValue();
        
        if (map != null) {
            String statusText = "";
            if (map.containsKey("qDepartmentHeadApproval")) {
                statusText = (String) map.get("qDepartmentHeadApproval");
            } else if (map.containsKey("rDepartmentHeadApproval")) {
                statusText = (String) map.get("rDepartmentHeadApproval");
            }
            approvalStatusTv.setText(statusText);
        } else {
            approvalStatusTv.setText("暂无审批状态");
        }
    }

    @Override
    public void onCancelled(@NonNull DatabaseError databaseError) {
        TextView approvalStatusTv = findViewById(R.id.your_textview_id);
        approvalStatusTv.setText("读取审批状态失败");
    }
});

注意事项

  • 确保qDepartmentHeadApproval和rDepartmentHeadApproval的键名和上传时完全一致,大小写敏感
  • 类型转换时要确保Firebase存储的是字符串类型,避免类型转换异常
  • 可以根据需求自定义空数据或读取失败时的提示文本

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 15:15:17