[英]How to read the value of childByAutoId() in swift 4?
我是iOS开发的新手,我使用childByAutoId()将大量数据存储到Firebase数据库中,在此之下存储用户名,photoURL,textMessage和用户UID。 我在tableView单元格中检索此数据。 现在我想要的是当我点击帖子或tableView单元格之一时,我想打印出childByAutoId()函数生成的唯一ID。 这个怎么做。
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
let name = Auth.auth().currentUser?.displayName
let indexPath = tableView.indexPathForSelectedRow
let alertController = UIAlertController(title: "Trial", message: "You Selected "+name!, preferredStyle: .alert)
let defaultAction = UIAlertAction(title: "Close Alert", style: .default, handler: nil)
alertController.addAction(defaultAction)
present(alertController, animated: true, completion: nil)
}
我正在使用此代码来捕获单元格上的水龙头。 那么,什么代码可以帮助您在点击特定单元格后获得其子ID? 我想将其打印在日志中。
这是我的清单的样子。
如果要访问任何特定数据的键,则必须进行Firebase查询。 而且我相信您具有识别数据的独特价值。
为了获得唯一密钥,可以使用以下func:
func getUniqueFirebaseKey(){
let ref = Database.database().reference()
ref.child("CHILD_NAME")
.queryEqual(toValue: "UNIQUE_ID")
.observe(.value, with: { (snapshot: DataSnapshot) in`
if let snap = snapShot.value as? [String:Any] {
for key in snap.keys{
return key
}
})
}
通过这种方式,您可以获得firebase的自动ID密钥。
但是更好的选择是创建一个模型并存储该密钥,同时解析来自firebase的数据。
每个单元格都有一个indexPath,其中包含有关其行和部分的信息:
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
//Side note: the name of a user shouldn't be optional
let name = Auth.auth().currentUser?.displayName ?? ""
let message = "You Selected " + name + " in cell number : " + \(indexPath.row)
let alertController = UIAlertController(title: "Trial", message: message, preferredStyle: .alert)
let defaultAction = UIAlertAction(title: "Close Alert", style: .default, handler: nil)
alertController.addAction(defaultAction)
present(alertController, animated: true, completion: nil)
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.