使用Firebase Swift检索数据

我正在为我的Swift iOS应用程序使用Firebase。 我发现在Firebase的指南检索数据教程有点混乱,我不知道为什么当我尝试访问我的数据库中的现有值结果零值。

这是我迄今为止:

usersRef.queryOrderedByChild("fbid").queryEqualToValue(userId).observeSingleEventOfType(.Value, withBlock:{ snapshot in print("SNAPSHOT: ",snapshot.value) 

这是打印快照的结果。

 SNAPSHOT: { 1 = { fbid = 1; firstName = Michelle; friendlist = { 9 = "Kevin C"; }; lastName = C; profilepicurl = "https:; uid = "facebook:1"; }; } 

但是,下面的结果是:
致命错误:意外地发现零,而解包一个可选值

  firstName = snapshot.value.objectForKey("firstName") as! String 

我想检索用户(firstName,profilepicurl,friendlist等)的所有值,并将其存储在variables中。 这似乎很简单,但也许我错过了一些东西。 任何帮助,将不胜感激。

您的FDataSnapshot不包含子firstName 。 它只包含一个孩子1

这是因为你正在执行一个查询,然后要求一个值。 由于一个查询可以有很多结果,它返回一个结果列表。 即使只有一个结果,它仍然是1的列表。

解决方法是循环播放子节点:

 usersRef.queryOrderedByChild("fbid") .queryEqualToValue(userId) .observeSingleEventOfType(.Value, withBlock:{ snapshot in for child in snapshot.children { print("Loading group \(child.key!)") } })