ios - 拍摄数据快照时出现 Firebase NSNull 异常

标签 ios swift firebase firebase-realtime-database

我在制作一个 Firebase 练习应用程序时遇到了这个问题。我在从 Firebase 数据库捕获值时遇到 NSNull 异常的地方。这是代码

user = FIRAuth.auth()?.currentUser
    ref = FIRDatabase.database().reference()
    let userid = user.uid
    if userid != nil
    {
        print("User Nid \(userid)")
        ref.child("users").child(userid).observe(.value, with: {
            (snapshot) in
            if(snapshot.exists()){
                var user_details = snapshot.childSnapshot(forPath: "\(userid)")
                var user_det = user_details.value as! Dictionary<String, String>
                print("User Name \(user_det["name"])")
            }
            else{
                print("Does not exist")
            }
        })

    }

这是数据库。

  • uid

    • user-details

      • name: "Salman"

      • propic: "picurl"

最佳答案

你可以这样试试吗

ref.child("users").child(userID!).observeSingleEvent(of: .value, with: { (snapshot) in
  // Get user value
    let value = snapshot.value as? NSDictionary
    if  let userDetail= value?["user-details"] as? [String:Any] {
         // let username = value?["name"] as? String ?? ""
            let username = userDetail["name"] as? String ?? ""
    }

  }) { (error) in
    print(error.localizedDescription)
}

关于ios - 拍摄数据快照时出现 Firebase NSNull 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43462906/

相关文章:

javascript - 为什么我的 Firebase 项目无需指定 apiKey 即可运行?

android - 使用 Firebase 将推送通知发送到所有注册设备的 JSON 数据

iphone - 如何使用 coreGraphics 在两点连接处添加曲线?

ios - 表 TableView 中的字母部分

ios - 在多个 ViewController 上共享 ARSCNView

iOS 将电话号码转换为国际格式

firebase - Flutter/Firestore- 'List<dynamic>'类型不是 'Widget'类型的子类型

ios - UITableViewCell 在用户触摸或点击 Cell 时动画调整大小

ios - TableView不符合协议(protocol)

ios - 点击单元格时 UILabel 向右移动