如何在TableViewcell中保存Swift的Firebase密钥

时间:2017-05-15 04:24:38

标签: ios swift xcode firebase firebase-realtime-database

我是初学者。主要功能是当用户单击单元格的每个按钮时,它将更新数据。但我只是写了一个新数据,它无法更新现有数据。 的 ViewController.swift

此函数写入新密钥不保存现有密钥。我怎么解决?

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()


    })

这是我在谷歌驱动器中的练习xcode

https://drive.google.com/open?id=0B2jj6V1tOGcVTm9JSy1uNV9fZnM

这是图片的firebase数据:

This is firebase data for image

1 个答案:

答案 0 :(得分:1)

问题出在这一行

let key = databaseRef.childByAutoId().key

您正在创建新的autoID,而不是使用snapshot.key中的当前子级autoId,因此请将该行更改为低于1,然后您将全部设置为。

let key = snapshot.key