【问题标题】:Retrieve last child from child node firebase realtime database swift 4从子节点firebase实时数据库swift 4中检索最后一个子节点
【发布时间】:2019-03-04 20:52:43
【问题描述】:

这是我的 firebase 实时数据库

Image link

这是我使用的 sn-p,它总是返回 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)
            }

【问题讨论】:

  • 首先将您的 DataSnapshot 变量名称更改为其他名称。因为DataSnapshot是firebase框架中的一个类

标签: ios swift firebase firebase-realtime-database


【解决方案1】:

如果您尝试访问 Id,并且 Id 可以是 0 以外的任何值。 比你可以试试下面的sn-p

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
                }
            }

【讨论】:

    【解决方案2】:

    使用 .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)
                }
    

    【讨论】:

    • 我在单击按钮时检索数据
    • 我需要即时的东西。
    猜你喜欢
    • 1970-01-01
    • 2020-04-22
    • 2023-01-16
    • 1970-01-01
    • 2017-06-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多