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

如何从Firebase Realtime DB中读取指定子节点的属性值?

你代码的核心问题是事件类型选择错误,你已经通过child(titleOfTask)定位到了单个任务的根节点,.childAdded事件仅会在监听路径下新增子节点时触发回调,无法读取当前节点已存储的属性值,你需要改用.value类型的事件读取当前节点的全部数据。

修正后的代码如下:

taskRef = Database.database().reference(withPath: "Tasks").child(titleOfTask)

taskRef?.observeSingleEvent(of: .value, with: { (snapshot) in
     guard let taskDict = snapshot.value as? [String:Any] else { return }
     // 分别读取两个属性存入对应变量
     let taskDescription = taskDict["Description"] as? String ?? ""
     let taskDueDate = taskDict["Due Date"] as? String ?? ""
     print("Printing ---------> 描述:\(taskDescription),截止日期:\(taskDueDate)")
})

附加排查建议:如果修改后仍无输出,请先确认titleOfTask的取值和数据库中存储的任务节点名称完全匹配(大小写、特殊字符、空格均需一致),其次确认Firebase Realtime Database的规则配置允许当前用户读取对应路径的数据。

内容的提问来源于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 10:36:04