【问题标题】:Firebase Swift: Converting Snapshots to DictionaryFirebase Swift:将快照转换为字典
【发布时间】:2017-02-18 20:52:32
【问题描述】:

我有以下快照,我正在尝试创建一个字典数组。我一直在摆弄转换为 [String: Bool] 或获取 snapshot.value 的方法,但似乎无法正常工作。有什么建议我该怎么做?

ref.child("activities").child(userUID!).observe(.childAdded, with: { (snapshot) in
       print(snapshot)
}) { (error) in
       print(error.localizedDescription)
}

快照如下所示:

捕捉 (Person1) 0

捕捉 (Person2) 0

捕捉 (Person3) 0

我正在尝试编写这样的数组:

Optional(["Person3": false, "Person2": false, "Person1": false])

非常感谢一些建议,谢谢!

【问题讨论】:

    标签: swift firebase


    【解决方案1】:

    您需要将快照值转换为 [String:Bool]。您可以使用下面的代码来完成。

    snapshot.value as? [String:Bool]
    

    编辑: 你说它不起作用......你确定你有任何数据要检索吗?

    如果你这样做,你会发现你是否有任何数据。

    if let value = snapshot.value{
        //there is data available
        let data = value as [string:Any]
        print("\(data)")
    }else{
        //there is no data available. snapshot.value is nil
        print("No data available from snapshot.value!!!!")
    }
    

    【讨论】:

    • 嗨@joakim 真的不行。可选转换返回 nil,强制转换返回错误无法将类型“__NSCFBoolean”(0x103e8a5b8)的值转换为“NSDictionary”(0x103e8b288)。
    猜你喜欢
    • 1970-01-01
    • 2016-10-28
    • 2017-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-10
    • 1970-01-01
    • 2019-01-19
    相关资源
    最近更新 更多