2017-04-24 2 views
0

kaarsenアレイをすべてのシングルユーザのFirebaseデータベースから取得するにはどうすればよいですか?どのようにすべてのユーザーの特定の情報を取得するには?

enter image description here

+0

なぜそれが配列だと思いますか? /myT3.../kaarsenに直接アクセスできます。また、Firebaseの構造をテキストで表現してください。画像はありません。私たちの答えでそれを再入力する必要はありません。また、作業を完了するためのコードを記述して、どこに行き詰まっているかを教えてください。最後に、この非常に参考になる記事:[最小限で完全で検証可能な例を作成する方法] – Jay

答えて

1

あなたはFirebaseデータベースに大きなアンチパターンで異なるタイプのデータを、ネストされているように見えます。 Firebaseからデータを読み込むと、常にノード全体が読み込まれます。だからあなたのシナリオでは、あなたは、全体のユーザーを読むか、またはそれらを読んでいない。各ユーザーのkaarsenノードだけを取得することはできません。これは、Firebaseがさまざまなタイプのデータを入れ子にすることを推奨している理由の1つです。

あなたのケースでは、トップレベルノードをint kaarsenを分割するために最善のようだ:

users 
    <uid> 
    email: ... 
    geboortedatum: ... 
    naam: ... 
kaarsen 
    <uid> 
    ... 

この構造により、あなたは/kaarsenにアクセスすることによって、すべてのユーザーに対してkaarsenを得ることができます。

+0

大丈夫ですが、kaarsen配列のすべての要素を取得できますか?すべてのユーザーのために? –

+0

あなたが '/ kaarsen'にリスナーを付けると、それはすべてのユーザーのために取得されます。 –

+0

こんにちは、この問題の解決策を考えてください:http://stackoverflow.com/questions/43597578/how-to-call-a-function-once-orderbychild-is-done-running? – Coder1000

0
let userID = FIRAuth.auth()?.currentUser?.uid 

ref.child("users").child(userID!).child("kaarsen").observeSingleEvent(of: .value, with: { (snapshot) in 
// Get user value 
let value = snapshot.value as! Array 
arrayOfKarsens.append(value) 

// ... 
}) { (error) in 
print(error.localizedDescription) 
} 
関連する問題