[英]Cannot convert return expression of type 'User' to return type 'User?' for getting currentUser from Firebase
I'm new to Swift and I'm having trouble returning a User?我是 Swift 的新手,我无法返回用户? value from currentUser in Firebase for CURRENT_USER.
CURRENT_USER 的 Firebase 中的 currentUser 的值。 I have my User class declaration below and it's located in a separate UserApi file.
我在下面有我的用户 class 声明,它位于单独的 UserApi 文件中。 All the help is greatly appreciated!
非常感谢所有帮助!
var CURRENT_USER: User? {
if let currentUser = Auth.auth().currentUser {
return currentUser
}
return nil
}
User declaration:用户声明:
class User {
var email: String?
var profileImageUrl: String?
var username: String?
var id: String?
var isFollowing: Bool?
}
extension User {
static func transformUser(dict: [String: Any], key: String) -> User {
let user = User()
user.email = dict["email"] as? String
user.profileImageUrl = dict["profileImageUrl"] as? String
user.username = dict["username"] as? String
user.id = key
return user
}
}
Since you have declared a User
type in your project, the word User
in var CURRENT_USER: User? {
由于您在项目中声明了一个
User
类型, var CURRENT_USER: User? {
User
var CURRENT_USER: User? {
gets resolves to your own User
type, rather than FirebaseAuth.User
, which is in another module. var CURRENT_USER: User? {
解析为您自己的User
类型,而不是另一个模块中的FirebaseAuth.User
。
To fix this, either:要解决此问题,请执行以下任一操作:
rename your own User
to something such as UserInfo
, or;将您自己的
User
重命名为诸如UserInfo
之类的名称,或者;
Add the prefix FirebaseAuth.
添加前缀
FirebaseAuth.
to User
to differentiate:给
User
区分:
var currentUser: FirebaseAuth.User? { Auth.auth().currentUser }
You can also add a typealias
to give the Firebase User
a different name:您还可以添加一个
typealias
给 Firebase User
一个不同的名称:
typealias FirebaseUser = FirebaseAuth.User
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.