我是初学者。主要功能是当用户点击单元格的每个按钮时,它会更新数据。但是我只是写了一个新数据,它不能更新现有数据。 ViewController.swift
这个函数写的是一个新的 key ,而不是保存现有的 key 。我该如何解决?
let databaseRef = FIRDatabase.database().reference()
databaseRef.child("location").queryOrderedByKey().observe(.childAdded, with: {snapshot in
guard let firebaseResponse = snapshot.value as? [String:Any] else
{
print("Snapshot is nil hence no data returned")
return
}
let status = firebaseResponse["status"] as! Int
let key = databaseRef.childByAutoId().key
let up = ["id":key,
"status":status] as [String : Any]
databaseRef.child("location").child(key).setValue(up)
self.posts.insert(postStruct(status:status,key:key), at: 0)
self.tableView.reloadData()
})
这是我在 google drive 中的练习 xcode
https://drive.google.com/open?id=0B2jj6V1tOGcVTm9JSy1uNV9fZnM
这是图像的 Firebase 数据:
最佳答案
问题出在这一行
let key = databaseRef.childByAutoId().key
您正在创建新的 autoID
,而不是使用来自 snapshot.key
的当前子 autoId,因此将那行更改为下面的一行,然后您就可以开始了。
let key = snapshot.key
关于ios - 如何在 TableViewcell 中为 Swift 保存 Firebase key ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43971553/