2017-11-02 3 views
-2

TableView를 사용하여 Firebase의 값을 변경하려고합니다.Swift Firebase 변경 값이 불안정합니다.

그리고 didSelectRowAt의 Swift 코드가 있습니다.

if let result = snapshot.children.allObjects as? [DataSnapshot] { 

for child in result { 

    let nameDB = child.childSnapshot(forPath: "contactName").value! as! String 

    if nameDB == receiverName { 

      let autoID = child.key as String 

      if receiverAmount.characters.contains("-") { 

       self.dbRef.child("user/contacts/\(autoID)/borrowAmount").setValue("") 
       self.dbRef.child("user/contacts/\(autoID)/borrowDueDate").setValue("") 
      } 
      else { 

       self.dbRef.child("user/contacts/\(autoID)/lendAmount").setValue("") 
       self.dbRef.child("user/contacts/\(autoID)/lendDueDate").setValue("2099-12-31") 
      } 

하지만 내 앱은 값이 불안정합니다.

원본 값과 새 값이 끊임없이 변경되고 내 앱이 중지됩니다.

이 문제를 해결하기위한 모든 아이디어 ...?

감사합니다.

+0

를 업데이트 불안정한 출력을 얻고있다? 그렇지? –

+0

@iOSGeek 예 그렇습니다. –

+0

데이터베이스에 존경받는 가치의 길을 알기 원하십니까? 자식 ID, 자식 이름, 값 이름이 for 루프 전에 업데이트 될 것입니까? 또는 For 루프에서 이러한 세부 정보를 가져 오는 중입니까? –

답변

0

1) tableView를 사용하면서 for 루프를 사용하지 않아도 al 값이 필요하다고 확신합니까? 대신에 for 루프를 사용하여 didselectAction은 for 루프를 사용하지 않는 참조를 작성하여 직접 값 업데이트를 수행하십시오. 인해

2) 루프 조건을 위해 당신이 그래서 그냥 여기에 루프 방지하고 직접 값

당신은 그냥 존경받는 아이의 단일 자녀의 값과 단일 값을 업데이트 할
관련 문제