在 Swift 中更新 Firebase 实时数据库中的 Parent 标题
Update a Parent Title in Firebase Realtime DB in Swift
我正在尝试更新我的数据库中的 parent 之一。但是,我没有成功。这是数据库的样子:
我可以 Update
描述 和 截止日期 像这样:
taskRef = Database.database().reference(withPath: "Tasks").child(titleOfTask)
taskRef?.updateChildValues(["Due Date": date_time])
taskRef?.updateChildValues(["Description": taskDescription])
但是,我正在尝试弄清楚如何更新任务名称。例如,如果用户尝试更新任务“Alpha”的描述并且还决定重命名该任务,我该如何更新名称?
我第一次尝试这样做,但没有成功,它只是在“Alpha”下创建了另一个键值对 parent。
newTaskRef?.updateChildValues([titleOfTask: taskTitle])
然后我意识到我的数据库引用已经指向任务标题,所以它不会起作用。然后我考虑创建另一个仅引用“任务”的数据库,并像这样更新标题:
newTaskRef = Database.database().reference(withPath: "Tasks")
newTaskRef?.updateChildValues([titleOfTask: taskTitle])
但这也没有用。不确定我还能尝试什么,或者哪里出错了。
重要事项:
- taskTitle 保存用户输入的新输入
- titleOfTask 是任务的旧名称。 (即用作从数据库读取的参考)
换句话说:
如果用户想要编辑“Alpha
”任务,我们必须将字符串“Alpha”传递给 database.reference
,这样我们才能读取它的值并更新描述and/or 截止日期。所以任务的原始标题存储在“titleOfTask”中,新的任务标题将存储在“taskTitle”
您不能直接更改数据库中的键。相反,您可以采用两步法:
- 使用更新后的标题和信息创建一个新密钥。
- 从数据库中删除旧密钥
我正在尝试更新我的数据库中的 parent 之一。但是,我没有成功。这是数据库的样子:
我可以 Update
描述 和 截止日期 像这样:
taskRef = Database.database().reference(withPath: "Tasks").child(titleOfTask)
taskRef?.updateChildValues(["Due Date": date_time])
taskRef?.updateChildValues(["Description": taskDescription])
但是,我正在尝试弄清楚如何更新任务名称。例如,如果用户尝试更新任务“Alpha”的描述并且还决定重命名该任务,我该如何更新名称?
我第一次尝试这样做,但没有成功,它只是在“Alpha”下创建了另一个键值对 parent。
newTaskRef?.updateChildValues([titleOfTask: taskTitle])
然后我意识到我的数据库引用已经指向任务标题,所以它不会起作用。然后我考虑创建另一个仅引用“任务”的数据库,并像这样更新标题:
newTaskRef = Database.database().reference(withPath: "Tasks")
newTaskRef?.updateChildValues([titleOfTask: taskTitle])
但这也没有用。不确定我还能尝试什么,或者哪里出错了。
重要事项:
- taskTitle 保存用户输入的新输入
- titleOfTask 是任务的旧名称。 (即用作从数据库读取的参考)
换句话说:
如果用户想要编辑“Alpha
”任务,我们必须将字符串“Alpha”传递给 database.reference
,这样我们才能读取它的值并更新描述and/or 截止日期。所以任务的原始标题存储在“titleOfTask”中,新的任务标题将存储在“taskTitle”
您不能直接更改数据库中的键。相反,您可以采用两步法:
- 使用更新后的标题和信息创建一个新密钥。
- 从数据库中删除旧密钥