按孩子查询Firebase数据

问题描述 投票:0回答:1

我现在很长时间使用swift和Firebase,但面临的问题是我的一个查询无法正常工作。

我的每条消息都分配了一个创建日期,我可以在加载消息时从数据中调用它,但是我无法通过子节点“creationDate”加载它,这是我的时间戳节点。

我的消息像聊天应用程序一样发送,没有问题,以下是我查询数据的代码。正如我所提到的,路径是正确的,代码仅用于测试目的

注意:这只是一个代码片段,用于测试路径是否正确

    func checkMessages() {
    guard let currentUser = API.User.CURRENT_USER?.uid else {return}
    API.Message.REF_MESSAGES_CHAT.child(currentUser).queryOrdered(byChild: "creationDate").observeSingleEvent(of: .value) { (snapshot) in

        if let dict = snapshot.value as? [String:Any] {
            for key in dict.keys {

                if let value = dict[key] as? [String:Any] {
                    let creationDate = value["creationDate"] as! Double
                    let text = value["text"] as! String

                    print("creation:" , creationDate)
                    print("text:", text)
                }
            }
        }
    }
}

打印出来的

creation: 1514041174.13297
text: 8
creation: 1514041177.54951
text: 10
creation: 1514041171.24212
text: 6
creation: 1514041172.35241
text: 7
creation: 1514041168.06832
text: 3
creation: 1514041166.98511
text: 2
creation: 1514041170.10783
text: 5
creation: 1514041165.88657
text: 1
creation: 1514041169.09632
text: 4
creation: 1514041175.60879
text: 9

我给他们发了正确的命令(1,2,3,4,5,6,7,8,9,10)。任何的想法?我在这一点上真的很挣扎,因为我在我的应用程序中实现了30多次这个功能,而在其他任何地方只是查询它的问题。

编辑:上传邮件

        let creationDate = Date().timeIntervalSince1970
    let timestamp = ["creationDate": creationDate, "text": text] as [String : Any]
    API.Message.REF_MESSAGES_CHAT.child(currentUser).child(newMessageID).setValue(timestamp)
swift database firebase firebase-realtime-database
1个回答
0
投票
API.Message.REF_MESSAGES_CHAT.child(currentUser).queryOrdered(byChild: "creationDate").observeSingleEvent(of: .value) { snapshot in ... }
© www.soinside.com 2019 - 2024. All rights reserved.