Swift: невозможно получить данные из Firebase под childByAutoId - PullRequest
0 голосов
/ 18 апреля 2019

Я пытаюсь получить данные из Firebase, но приложение падает, когда я добавил метод setValueForKeys.

До этого я пробовал другие способы извлечения данных, но не могу получить доступ к данным, которые хранятся в childByAutoId

databaseImage

Мне нужен доступ к началуи конечные значения, которые хранятся в разделе «Работа»

. Таким образом сохраняются данные:

func post () {

    let dateFormatter = DateFormatter()
        dateFormatter.timeStyle = .none
        dateFormatter.dateStyle = .medium

    let todaysDate = dateFormatter.string(from: date)



    let post: [String : String] = ["start" : startTimeField.text!, "end" : endTimeField.text!]


    let databaseRef = Database.database().reference()

        databaseRef.child("Posts").child("\(todaysDate)").child(categoryField.text!).childByAutoId().setValue(post)


}

Для извлечения данных я создал класс объектов

import UIKit

class Category: NSObject {

    var start : String?
    var end: String?

}

Это ссылка на контроллер табличного представления

 var postData = [Category]()

А метод извлечения ниже

 func fetchData () {

        Database.database().reference().child("Posts").child("Apr 18, 2019").child("Work").observeSingleEvent(of: .childAdded, with: { (snapshot) in

           if let dictionary = snapshot.value as? [String: String] {
                let category = Category()

            category.setValuesForKeys(dictionary)

            category.start = dictionary["start"]
            category.end = dictionary["end"]

            self.postData.append(category)

            self.tableView.reloadData()


            }



       }, withCancel: nil)

    }

Также код для табличного представления ниже

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {

    return postData.count

}

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {


    let cell = UITableViewCell(style: .subtitle, reuseIdentifier: postCell)

    let category = postData[indexPath.row]
    cell.textLabel?.text = category.start

    return cell

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...