如何从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
相关产品推荐
相关产品推荐

