这是我的数据库结构:
users
user1
nodeA
nodeToBeMoved
content : content1
date : date1
user2
nodeB
我正在寻找将“nodeToBeMoved”从节点 A 移动到节点 B,我尝试将 content1 和 date1 放入变量“value”中,然后删除“nodeToBeMoved”,然后将变量添加到节点B. 但由于某种原因我的应用程序崩溃了。这是我的代码:
self.ref.child("users").child(user1).child(nodeA).child(nodeToBeMoved).observe(.value, with: { (snapshot) in
let value = snapshot.valueInExportFormat() as AnyObject
self.ref.child(users).child(user1).child(nodeA).child(nodeToBeMoved).removeValue()
self.ref.child(users).child(user2).child(nodeB).child(nodeToBeMoved).child(content).setValue(value["content"] as Any)
self.ref.child(users).child(user2).child(nodeB).child(nodeToBeMoved).child(date).setValue(value["date"] as Any)
}) { (error) in
print(error.localizedDescription)
}
我相信变量类型有问题。有人可以帮我解决这个问题吗?这也是我的方法,但是如果您知道更好的方法,请随时说出来。
最佳答案
试试这个`
self.ref.child("users").child(user1).child(nodeA).child(nodeToBeMoved).observe(.value, with: { (snapshot) in
let value = snapshot.value as NSdictionnary
if let actualvalue = value {
self.ref.child(users).child(user1).child(nodeA).child(nodeToBeMoved).removeValue()
self.ref.child(users).child(user2).child(nodeB).child(nodeToBeMoved).child(content).setValue(actualvalue["content"] as Any)
self.ref.child(users).child(user2).child(nodeB).child(nodeToBeMoved).child(date).setValue(actualvalue["date"] as Any)
}
}) { (error) in
print(error.localizedDescription)
}
关于swift - 在 Swift 中将 Firebase 的一个子节点从一个节点更改为另一个节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57683503/