首页 > 解决方案 > 如何解决我的swift4项目中的firebase转换问题..(NSDictionary to Swift Object)

问题描述

我会尝试 .....

    ref = Database.database().reference()
    ref.child("~~").child("~~~~").observeSingleEvent(of: .value) {     (snapshot) in
            let value = snapshot.value as? NSDictionary
            let follow = value?["follower"] as? NSDictionary ?? [:]
                for key : Any in follow.allKeys{
                     self.followKeyList.append(key as! String)
                }
            }

实际上,我想通过follow键获取它下面的值,然后解析这些值。

但我不知道如何在输出中处理 Swift。

请帮我。

consol )

Optional({
    age = 1992;
    city = "\Uc11c\Uc6b8\Ud2b9\Ubcc4\Uc2dc \Uc131\Ubd81\Uad6c";
    img = "https://zzim-profile-images.s3.ap-northeast-    2.amazonaws.com/3uzDeLNbO3X7MlUx6LC23SGO6Y73/1535015109629";
    nickname = "\Ucc0c\Uc74f \Uae40\Ub2e4\Uc194";
    sex = "\Ub0a8\Uc790";
    userId = 3uzDeLNbO3X7MlUx6LC23SGO6Y73;
})

火力基地)

在此处输入图像描述

标签: firebasefirebase-realtime-databaseswift4

解决方案


啊....我解决了。

我正在使用 CodableFirebase。

git 集线器:https ://github.com/alickbass/CodableFirebase

        let values = snapshot.value as? NSDictionary
        let follow = values?["follower"] as? NSDictionary ?? [:]

        for key : Any in follow.allKeys{
            self.followKeyList.append(key as! String)
        }
        var followIndex = 0
                    for _ : Any in follow.allKeys{
                        do{

                            var data = try FirebaseDecoder().decode(FFModel.self, from: follow.value(forKey: self.followKeyList[followIndex]))
                            data.id = self.followKeyList[followIndex]
                            followList.append(data)
                            followIndex += 1
                        }catch let err{
                            print(err, err.localizedDescription)
                        }
        }

codablefirebase 非常容易将 firebase nsdictionary 格式数据转换为 swift 对象。

...太棒了.........


推荐阅读