Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 从Firebase数据库检索数据时,<;空>;返回的消息是:“引用”;捕捉(…)<;空>&引用;_Swift_Firebase_Firebase Realtime Database - Fatal编程技术网

Swift 从Firebase数据库检索数据时,<;空>;返回的消息是:“引用”;捕捉(…)<;空>&引用;

Swift 从Firebase数据库检索数据时,<;空>;返回的消息是:“引用”;捕捉(…)<;空>&引用;,swift,firebase,firebase-realtime-database,Swift,Firebase,Firebase Realtime Database,我是一名相对较新的Swift程序员,第一次使用Firebase,因此请原谅我可能存在的任何误解以及我对术语的缺乏了解 我试图检索存储在数据库中的用户数据(电子邮件和用户名) 代码成功地在数据库中找到用户ID。然后使用userID导航到包含用户名和电子邮件的目录。它将这些值存储在快照中 出于某种原因,当打印快照时,它会显示用户ID,但目录的内容(用户名和密码)显示为。我确信我试图访问和检索数据的目录存在并且不是空的(它包含用户名和电子邮件)。我想要snapshot来存储用户名和电子邮件,但打印结果

我是一名相对较新的Swift程序员,第一次使用Firebase,因此请原谅我可能存在的任何误解以及我对术语的缺乏了解

我试图检索存储在数据库中的用户数据(电子邮件和用户名)

代码成功地在数据库中找到用户ID。然后使用userID导航到包含用户名和电子邮件的目录。它将这些值存储在快照中

出于某种原因,当打印
快照时,它会显示用户ID,但目录的内容(用户名和密码)显示为
。我确信我试图访问和检索数据的目录存在并且不是空的(它包含用户名和电子邮件)。我想要
snapshot
来存储用户名和电子邮件,但打印结果表明这样做不正确,我无法找出原因

这是我的代码块:

func checkIfUserIsLoggedIn(){
如果Auth.Auth().currentUser?.uid==nil{
执行(#选择器(handleLogout),带:nil,后延迟:0)
}否则{
设uid=Auth.Auth().currentUser?.uid;
Database.Database().reference().child(“用户”).child(uid!).observeSingleEvent(of:.值,其中:{(快照))位于
打印(快照)
如果let dictionary=snapshot.value as?[字符串:AnyObject]{
self.userLabel.text=字典[“名称”]作为?字符串
}
},带取消:无)
}

}
您在Firebase中的引用是指向
“用户”
,但您在代码中使用的是
.child(“用户”)
。确保查找的大小写与节点匹配。我发现最好创建对该节点的引用,并将其用于写入和读取

让usersRef=Database.Database().reference().child(“用户”)



Snap(ywU56lTAUhRpl3csQGI8W8WmQRf1)
括号中的部分指的是您试图观察的对象的结束节点。在这种情况下,它指的是
uid

如果它没有找到您的询问值,则表明您询问了错误的目录。检查firebase db子名称,它必须与您的代码(“用户”)中的名称完全相同。

谢谢您的回复!我已经修改了我的代码,将
let user=user()
user.setValuesForKeys(字典)
包含在您包含您的代码的相同位置,但问题仍然存在。还有其他想法吗?还是我没有正确地实现您的解决方案?在firebase中,您有小写的用户,而在代码中您使用的是“用户”。也许是这样。如果我的答案解决了你的问题,你能把它标记为接受吗?
if u want to get username or email then you make first the model class for 
Example:-


class User: NSObject {
    var name: String?
    var email: String?
}

then user firebase methed observeSingleEvent

    FIRDatabase.database().reference().child("user").child(uid).observeSingleEvent(of: .value, with: { (snapShot) in
                if let dictionary = snapShot.value as? [String: Any]{
            //    self.navigationItem.title = dictionary["name"] as? String
                let user  = User()
                    user.setValuesForKeys(dictionary)
                self.setUpNavigationBarWithUser(user: user)
                }
            })`