Swift - 无法将类型 '__NSCFString' 的值转换为 'NSDictionary'

标签 swift firebase firebase-realtime-database

我遇到了这个错误,但我正在尝试从 Dictionary 中获取 String。这是我的代码:

FIRDatabase.database().reference().child("users").child(uid).observeEventType(.ChildAdded, withBlock: { (snapshot) in

            let dictionary = snapshot.value as! NSDictionary

            if let username = dictionary["name"] as? String {
                cell.name.text = username
            }

            if let userlogin = dictionary["login"] as? String {
                cell.login.text = userlogin
            }

        })

在我的 Firebase 数据库 “name”“login” 都是字符串。我不明白这是什么问题。

如有任何帮助,我们将不胜感激!

最佳答案

关于将快照转换到 NSDictionary 的问题。由于快照值是一个字符串。 试试这个:

FIRDatabase.database().reference().child("users").child(uid).observeEventType(.ChildAdded, withBlock: { (snapshot) in

        if let dictionary = snapshot.value as? NSDictionary {

            if let username = dictionary["name"] as? String {
                cell.name.text = username
            }

            if let userlogin = dictionary["login"] as? String {
                cell.login.text = userlogin
            }
        }
    })

关于Swift - 无法将类型 '__NSCFString' 的值转换为 'NSDictionary',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38831641/

相关文章:

ios - 如何更改 SwiftUI 中导航栏的背景颜色?

swift - 使用 Alamofire 将多个类型参数发送到 API - Swift

ios - 如何快速加载 View 多次?

java - 如何确定用户是否在 Firebase 中使用电子邮件注册?

firebase - flutter future :A build function returned null

swift - 在 SwiftUI 中开始编辑文本字段时检索键盘高度

Android Firebase DynamiteModule : Failed to load module descriptor

Firebase 云消息传递 : Why do registration tokens get deleted?

javascript - 如何从firebase列表中删除项目

c# - 与 firebase 集成的 Unity 可在 Unity 编辑器上运行,但不适用于移动设备