使用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!)") } })