簡體   English   中英

無法將類型“用戶”的返回表達式轉換為返回類型“用戶?” 從 Firebase 獲取 currentUser

[英]Cannot convert return expression of type 'User' to return type 'User?' for getting currentUser from Firebase

我是 Swift 的新手,我無法返回用戶? CURRENT_USER 的 Firebase 中的 currentUser 的值。 我在下面有我的用戶 class 聲明,它位於單獨的 UserApi 文件中。 非常感謝所有幫助!

var CURRENT_USER: User? {
        if let currentUser = Auth.auth().currentUser {
            return currentUser
        }
        return nil
    }

用戶聲明:

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

由於您在項目中聲明了一個User類型, var CURRENT_USER: User? { User var CURRENT_USER: User? {解析為您自己的User類型,而不是另一個模塊中的FirebaseAuth.User

要解決此問題,請執行以下任一操作:

  • 將您自己的User重命名為諸如UserInfo之類的名稱,或者;

  • 添加前綴FirebaseAuth. User區分:

     var currentUser: FirebaseAuth.User? { Auth.auth().currentUser }

    您還可以添加一個typealias給 Firebase User一個不同的名稱:

     typealias FirebaseUser = FirebaseAuth.User

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM