Получение метки времени из базы в Swift - PullRequest
0 голосов
/ 08 мая 2018

Я хотел бы получить свою временную метку из базы данных и преобразовать ее в наше нормальное время чч: мм: а, и я сделал:

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

    let cell: PrivateMsgMainMenuTableViewCell = self.tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath) as! PrivateMsgMainMenuTableViewCell

        let ref = Database.database().reference().child("privateMessages")

        ref.observeSingleEvent(of: .childAdded) { (snapshot) in
            for rest in snapshot.children.allObjects as! [DataSnapshot] {

                let messageID = rest.key

                let ref2 = Database.database().reference().child("privateMessages").child(messageID).queryLimited(toLast: 1)
                ref2.observeSingleEvent(of: DataEventType.value) { (snap) in
                    let messageDetails = snap.children

                    while let timeSent = messageDetails.nextObject() as? DataSnapshot {
                        let timeSentDetails = (timeSent.value as! [String: AnyObject])["timestamp"] as? Double

                        let converted = NSDate(timeIntervalSince1970: timeSentDetails! / 1000)

                        let dateFormatter = DateFormatter()
                        dateFormatter.timeZone = NSTimeZone.local
                        dateFormatter.dateFormat = "hh:mm a"
                        let time = dateFormatter.string(from: converted as Date)

                        DispatchQueue.main.async {
                            cell.timeLabel.text = time
                        }
                    }

                }
            }
    }
    return cell
}

моя пожарная база выглядит так: enter image description here

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

let timeSentDetails = (timeSent.value as! [String: AnyObject])["timestamp"] as? Double

не запускается, когда я ставлю точку останова. Есть ли какие-либо ошибки, которые я сделал здесь?

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