Firebase使用Swift模糊地使用observeEventType

Ayl*_*lii 4 ios firebase swift firebase-realtime-database

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

snapshot.value的打印显示

( friend1, 
  friend2, 
  friend3 
)
Run Code Online (Sandbox Code Playgroud)

我已经尝试过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)
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

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

Jay*_*Jay 13

只是一些编码错误

删除:(快照) - >无效

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

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

let name = child.value["name"] as? String
friendsList.append(name!)
Run Code Online (Sandbox Code Playgroud)

这是更正后的代码:

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)")
    }
})
Run Code Online (Sandbox Code Playgroud)