Swift 对 observeEventType 的模糊使用

Firebase with Swift ambiguous use of 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)
            }
        }
    }

这又让我感到模棱两可。

只是一些编码错误

删除:(快照)-> 无效

更改:快照中的child,因为快照不是序列,而snapshot.children是

我假设您想将朋友姓名存储为字符串,并且 name 是您结构中的键。所以把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