gpt4 book ai didi

ios - 从 Firebase 设置用户值

转载 作者:行者123 更新时间:2023-11-30 12:32:52 25 4
gpt4 key购买 nike

我试图初始化 User 中的值对象,但从另一个问题来看,似乎不可能在那里做到这一点 - 现在,尝试在 viewDidLoad 中的 View Controller 中做同样的事情,我遇到了另一个错误:

这是我在 viewDidLoad 中对 Firebase 的调用( myUser 是全局变量 var myUser:User! ):

        let userRef: FIRDatabaseReference = FIRDatabase.database().reference().child("users").childByAutoId()
let userRefHandle: FIRDatabaseHandle?

userRefHandle = userRef.observe(.value, with: { (snapshot) -> Void in
let userData = snapshot.value as! Dictionary<String, AnyObject>
let id = snapshot.key

if (FIRAuth.auth()?.currentUser?.uid) != nil {
if let name = userData["name"] as! String!, name.characters.count > 0 {
let handle = userData["handle"] as! String!
let gender = userData["gender"] as! String!
let profilePicture = userData["profilePicture"] as! String!
let uid = userData["uid"] as! String!
// let rooms = userData["rooms"] as! [[String : AnyObject]]

myUser.uid = uid
myUser.uid = handle
myUser.uid = name
myUser.uid = profilePicture
myUser.uid = gender
// myUser.rooms = rooms

} else {
print("Error! Could not initialize User data from Firebase")
}
}
})

这样做的最终目标是,当用户启动应用时(已经注册并且他们的信息位于 Firebase 中),他们的信息将从数据库中提取并设置为 User对象,以便可以在应用程序周围使用这些值(名称、句柄、profilePicture 等)。

我收到错误:Could not cast value of type 'NSNull' (0x106d378c8) to 'NSDictionary'关于let userData = snapshot.value线。

这是用户数据在 Firebase 中的样子:

"users" : {
"-KgjW9PEvCPVqzn7T5pZ" : {
"gender" : "male",
"handle" : "TestHandle123",
"name" : "Timothy",
"profilePicture" : "https://graph.facebook.com/*removed*/picture?type=large&return_ssl_resources=1",
"uid" : "2q4VCKu1e7hiL84ObdzgQcQ0pH63"
}
}

我想知道这是否是从 Firebase 设置用户值的正确方法,如果是,如何避免该错误?

最佳答案

在您的代码中,您正在使用profile查找个人资料图片

let profilePicture = userData["profile"] as! String!

但在数据中,您有profilePicture

因为您强制解开包装,所以当找不到 key 时您会收到此错误。

您应该确保在两个地方使用相同的 key 。如果您遇到数据问题,也可能值得包括默认值

let profilePicture = userData["profile"] as? String ?? "default"

关于ios - 从 Firebase 设置用户值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43259384/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com