Firebase使用Swift模糊地使用observeEventType

时间:2016-03-27 08:15:54

标签: ios swift firebase firebase-realtime-database

因为这个原因,我一直在拔头发。转到包含相关事件和多个教程的所有页面,我发现我的代码在这里没有任何问题,但不知何故,如果我打印出值(有效)或将它们分配为它们,它只会失败! 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)
            }
        }
    }

再次让我感到含糊不清。

2 个答案:

答案 0 :(得分:13)

只是一些编码错误

删除:(快照) - >空隙

更改:快照中的子项,因为快照不是序列,而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)")
    }
})

答案 1 :(得分:0)

ref.observeSingleEvent(of: .value, with: { (snapshot) -> Void in

    })

为我工作,Xcode 8.3.2