Firebase使用Swift模糊地使用observeEventType

因为这个原因,我一直在拔头发。 转到包含相关事件和多个教程的所有页面我发现我的代码在这里没有任何问题,但不知何故,如果我打印出值(有效)或将它们指定为它们,它只会失败! NSArray然后给我一个空数组。

snapshot.value的打印显示

( friend1, friend2, friend3 ) 

我已经尝试过snapshot.value.values …没有骰子。 我已经尝试过打开…没有骰子。 这是我最后的尝试:

  friendsList = [String]() ref.observeSingleEventOfType(.Value) { (snapshot) -> Void in if snapshot.value is NSNull { } else { for child in snapshot { self.friendsList.append(child.value) } } } 

这再次给了我暧昧的东西。

只是一些编码错误

删除:(快照) – >无效

更改: 快照中的子项作为快照不是序列,而snapshot.children是

我假设你想将朋友的名字存储为字符串, 名字是你结构中的一个关键。 所以将self.friendsList.append(child.value )更改为

 let name = child.value["name"] as? String friendsList.append(name!) 

这是更正后的代码:

 var friendsList = [String]() ref.observeSingleEventOfType(.Value, withBlock: { snapshot in if snapshot.value is NSNull { } else { for child in snapshot.children { let name = child.value["name"] as? String friendsList.append(name!) } print("\(friendsList)") } }) 
 ref.observeSingleEvent(of: .value, with: { (snapshot) -> Void in }) 

为我工作,Xcode 8.3.2