2016-09-26 11 views
1

Firebaseのデータベースからランダムにいくつかのデータを選択できる必要があります。Firebaseの最後の子から鍵を取得

enter image description hereは私の質問がある

、どのように私は、キーを取得することができます。そのために、全体のデータベースをダウンロードしないようにするために、私はこのスクリーンショットのようにunsigned int型に代表されるキーでエントリを作成したいです最後の項目の追加?

私が試した:

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

私が間違って何をしますかを返しますか?

+0

問題は 'observeSingleEvent'から来ているようです。代わりに 'observe'を使うと、私は予想されるキーを取得します。 – Nico

答えて

1

最初の結果は、1という結果を返します。あなたはqueryLimited(toLast: 1)を探しています。

さらに、ほとんどの場合、avoid numeric, sequential keys in distributed dataです。

+0

私が言ったように、 'queryLimited(toLast:1)'でも、1ではなく2を返します。数字順キーを持つのは良いことではありませんが、別の方法でFirebaseからランダムにデータを取得します。 – Nico

関連する問題