从子节点Firebase实时数据库Swift 4中检索最后一个子

时间:2019-03-04 11:01:27

标签: ios swift firebase firebase-realtime-database

这是我的Firebase实时数据库

Image link

这是我正在使用的代码段,始终返回nil

let rootRef = Database.database().reference()
            rootRef.child("POSTS").queryLimited(toLast: 1).observeSingleEvent(of: .value) { (myDataSnap) in
                let value = myDataSnap.value as? NSDictionary
                print(value as? Any)
            }

2 个答案:

答案 0 :(得分:1)

使用.childAdded或childChanged代替.value,这可能会解决

let rootRef = Database.database().reference()
            rootRef.child("POSTS").queryLimited(toLast: 1).observeSingleEvent(of: .childChanged) { (myDataSnap) in
                let value = myDataSnap.value as? NSDictionary
                print(value as? Any)
            }

答案 1 :(得分:1)

如果您尝试访问Id,并且Id可以为0以外的任何值。 比您可以尝试下面的代码段

let Key = rootRef.child("POSTS").childByAutoId().key
            rootRef.child("POSTS").child(Key!).setValue(postData.toDictionary()){
                (error:Error?, ref:DatabaseReference) in
                if let error = error {
                    print("Data could not be saved: \(error).")
                } else {
                   //do stuff
                }
            }