ios - 如何在 TableViewcell 中为 Swift 保存 Firebase key

标签 ios swift xcode firebase firebase-realtime-database

我是初学者。主要功能是当用户点击单元格的每个按钮时,它会更新数据。但是我只是写了一个新数据,它不能更新现有数据。 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 数据:

This is firebase data for image

最佳答案

问题出在这一行

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/

相关文章:

ios - 上传文件后是否可以运行代码,NSURLSession 配置为 backgroundSessionConfiguration

ios - 在 UITableView 中的 UITableViewCells 之间切换

javascript - 无法在 iOS 中定位点击的元素

ios - 全局创建显示警报功能并从任何 View Controller 调用它

iphone - 用于数据的文本文件

swift - 从 UIPickerView 中获取字符串值从数组中选择字符串值? ( swift/xcode)

ios - 使用大量数据打包IOS App

ios - 后台获取 NSPersistentCloudKitContainer 变化设置通知

iOS Strech 动画 - 我应该从哪里开始寻找?

ios - 使用Xcode 10旧版版本进行归档和提交