我认为在尝试打印选项时会导致此错误。我删除了打印命令,我仍然得到了警告。我屏幕上弹了我的代码(见附件)。我正在使用firebase创建用户个人资料。提前感谢您的帮助。
代码:
func createProfile(_ user: User) {
let newUser = ["email": user.email,
"photo": "https://firebasestorage.googleapis.com/v0/b/frostingtest.appspot.com/o/ricks.jpg?
alt=media&token=d1f266e0-32aa-465d-bc42-82fdbe84881b"]
self.databaseRef.child("profile").child(user.uid).updateChildValues(newuser) { (error, ref) in
if error != nil {
print(error)
return
}
print("Profile Created Sucessfully")
}
}
答案 0 :(得分:0)
编译器说你的newUser
是String?
,来自firebase文档的你的函数updateChildValues
是:func updateChildValues(_ values: [AnyHashable : Any])
您可以在控制台日志中打印 newUser变量的类型吗?
答案 1 :(得分:0)
首先,这不是错误,而是警告。
如果在newUser
明确地发出警告,那么唯一可能的原因是字典中的user.email
是可选的。
编译器建议以下修复
["email": user.email ?? "",...
["email": user.email!,...
Any
:["email": user.email as Any,...
当您打算更改电子邮件时,可以假定user.email
不是nil
,因此建议2是合适的。如果假设错误,建议1是合适的,因为字典中的nil
值是荒谬的。
不幸的是,点击对应的Fix
按钮会误导性地将该建议应用于newUser
,这可能会导致(真正的红色)错误。您必须手动将建议应用于user.email
。