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

如何从Firebase数据库中仅读取Tasks节点下的任务名称?

实现方法

你需要获取的任务名称就是Tasks节点下所有子节点的key值,修改监听代码如下即可:

var postRef: DatabaseReference? // 声明在viewDidLoad外部
var refHandle: DatabaseHandle? // 声明在viewDidLoad外部

// 直接指向Tasks节点,减少不必要的数据读取
postRef = Database.database().reference().child("Tasks")

// 监听Tasks节点的数据变化
refHandle = postRef?.observe(DataEventType.value, with: { snapshot in
    // 先清空原有列表,避免重复存储旧数据
    self.listOftasks.removeAll()
    // 遍历所有任务子节点
    for child in snapshot.children {
        guard let taskSnapshot = child as? DataSnapshot else { continue }
        // 子节点的key就是你写入时传入的任务标题,也就是任务名称
        let taskName = taskSnapshot.key
        self.listOftasks.append(taskName)
    }
    // 这里可插入UI刷新代码,比如tableView.reloadData()
})

补充说明

如果你后续需要同时获取任务的描述、截止日期等信息,可在遍历的时候将taskSnapshot.value转换为[String: Any]类型的字典,读取对应的Description和Due Date字段即可。
另外你当前的写入逻辑是用任务标题作为节点key,如果存在两个完全重名的任务,后写入的会覆盖已有的同标题任务,可考虑改用childByAutoId()生成全局唯一的节点key,将任务标题作为节点下的一个字段存储,避免数据覆盖问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 13:36:11