индекс массива вне границ при удалении из firebase - PullRequest
0 голосов
/ 12 ноября 2019

, когда я пытаюсь удалить узел из дочернего элемента в firebase, он вылетает из моего кода, приводя к фатальной ошибке, говорящей «индекс за пределами». Конечным результатом является удаление данных, связанных с идентификатором, из UID. я прикрепил код для ячейки, удаляющей

func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCell.EditingStyle, forRowAt indexPath: IndexPath) {
    if (editingStyle == .delete) {
        var listOfUID = [String]()
        let ref = Database.database().reference().child(currentEmail!)

        ref.observe(.childAdded , with: { snapshot in
            if !snapshot.exists() {return}

            print(snapshot.key)

            let listOfUID = [snapshot.key]
            let name = listOfUID[indexPath.row]

            ref.queryOrdered(byChild: name ).queryEqual(toValue: name).observe(.childAdded, with: { (snapshot) in
                snapshot.ref.removeValue(completionBlock: { (error, reference) in
                    if error != nil {
                        print("There has been an error:\(error)")

                    }
                  data.remove(at: indexPath.row)
                  tableView.deleteRows(at: [indexPath], with: .left)
                })
            })
        })


    }
 }

по некоторым причинам, таким как let name = listOfUID[indexPath.row - 1], это тоже не исправит.

Я также считаю полезным упомянуть, что в текущем письме есть сканер, который вынимает "."

Я загрузил, как настраивается структура базы данных

{
  "email@yahoocom" : {
    "-LtUztWPbQias7bh5C2L" : {
      "message" : "Didn’t",
      "teamName" : "jah"
    },
    "-LtUzumEkb2kjK4qeU6E" : {
      "message" : "D d",
      "teamName" : "did if"
    },
    "-LtVCbxDu6DqxWv7LHzp" : {
      "message" : "Cc’d",
      "teamName" : "xdfff"
    }
  },
  "nice@nicecom" : {
    "-LtSjXIKnKXKgp-XCzdP" : {
      "message" : "Test 2",
      "teamName" : "test 1"
    }
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...