2017-11-27 4 views
0

私のfirebaseデータベースから私の子供の値を更新しようとしていますが、私の子供の値が1増えるごとに問題が発生します。 。代わりに子の値だけを更新するようにするにはどうすればよいですか?事前にあなたの助けをありがとう。新しい子を追加せずに子値を変更/更新する(Firebase-swift)

注:明確な理解のための画像を参照してくださいあなたは1で、リストからデータソースのカウント増分を要素を追加したが、その後childAddedのためのあなたのfirebaseコールバックが取得

var ref: DatabaseReference? 
var databaseHandle: DatabaseHandle? 
var postData = [String]() 
var postData2 = [String]() 

class TableViewController: UITableViewController { 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     ref = Database.database().reference() //set the firebase reference 

     // Retrieve the post and listen for changes 
     databaseHandle = ref?.child("Posts").observe(.childChanged, with: { (snapshot) in 
      // Code to execute when a child is added under "Posts" 
      let post1 = snapshot.key 
      let post2 = (snapshot.value as AnyObject).description 

      postData.append(post1) 
      if let actualPost = post2 { 
      postData2.append(actualPost) 

      self.tableView.reloadData() 

      } 

    override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 
     // #warning Incomplete implementation, return the number of rows 
     return postData.count 
    } 


    override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 
     let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) 

     cell.textLabel?.text = postData[indexPath.row] 
     cell.detailTextLabel?.text = postData2[indexPath.row] + " ★" 
     cell.detailTextLabel?.textColor = UIColor.yellow; 
     return cell 
    } 

} 

Image

答えて

0

データベースから追​​加した要素と同じものを取得して、重複する行を生成します。

あなたの例では赤いボタンを押したときに実行される呼び出しはありませんが、私はあなたがそれらの行に沿って何かをしていると仮定しています。それが役に立てば幸い。

+0

あなたはそれのコードを知っていますか?私はこれでかなり新しいです – Kinja

+0

あなたが赤いボタンをタップして(そしてデータベースに新しいレコードを追加すると)実行するコード@IBActionを共有してください。より詳細な回答に更新することができます – jugutier

関連する問題