2017-04-24 61 views
0

我怎样才能获得kaarsen排列出每一个用户的我的火力地堡的数据库?如何获取所有用户的具体信息?

enter image description here

+0

为什么你认为这是一个数组?您可以直接在/myT3.../kaarsen上访问它。另外,请提供您的火力地堡结构TEXT请,没有图像 - 这样,我们就不必重新输入它在我们的答案。此外,请努力尝试编写一些代码来完成任务,并让我们知道你卡在哪里。最后,回顾这个​​超级有用的文章:如何创建一个最小的,完整的,并且可验证的示例](http://stackoverflow.com/help/mcve) – Jay

回答

1

你似乎嵌套不同类型的数据,这是在火力地堡数据库一个大的反模式。从Firebase读取数据时,您始终读取整个节点。所以在你的场景中,你要么阅读整个用户,要么不阅读。您无法仅检索每个用户的kaarsen节点。这是Firebase建议反对嵌入不同类型数据的众多原因之一。

在你的情况似乎最好分裂kaarsen INT一个顶级节点:

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