获取数据快照时Firebase NSNull异常

时间:2017-04-18 03:05:50

标签: 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

         
        
    • 用户细节

           
          
      • 姓名:&#34; Salman&#34;

      •   
      • propic:&#34; picurl&#34;

      •   
    •   
  •   

1 个答案:

答案 0 :(得分:2)

你能用这种方式试试吗

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)
}