从Firebase中的最后一个孩子那里获取密钥

时间:2016-09-26 22:52:38

标签: ios firebase firebase-realtime-database

我需要能够从Firebase上的数据库中随机选择一些数据。为此,为了避免下载整个数据库,我想创建一个带有由unsigned int表示的键的条目,如下截图所示:

enter image description here

我的问题是,如何检索最后添加的项目的密钥?

我试过了:

ref.queryOrderedByKey().queryLimited(toFirst: 1).observeSingleEvent(of: .value, with: { [unowned self] snapshot in
    let id: UInt64
    if snapshot.exists(), let child = snapshot.children.nextObject() as? FIRDataSnapshot {
        id = UInt64(child.key)!
    } else {
        id = 1
    }
})

UInt64(child.key)!,无论我使用queryLimited(toFirst:)还是queryLimited(toLast:),都会返回1.

我做错了什么?

1 个答案:

答案 0 :(得分:1)

您的查询返回第一个结果,其中包含键1。您正在寻找queryLimited(toLast: 1)

此外,在大多数情况下,您应该avoid numeric, sequential keys in distributed data