swift - 无法将类型“用户”的返回表达式转换为返回类型“用户?” 从 Firebase 获取 currentUser
问题描述
我是 Swift 新手,在返回用户时遇到问题?Firebase 中 currentUser 的 CURRENT_USER 值。我在下面有我的 User 类声明,它位于一个单独的 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
}
}
解决方案
由于您已在项目中声明了一个类型,因此inUser
一词将解析为您自己的类型,而不是另一个模块中的 .User
var CURRENT_USER: User? {
User
FirebaseAuth.User
要解决此问题,请执行以下任一操作:
将您自己的名称重命名
User
为UserInfo
, 或;添加前缀
FirebaseAuth.
以User
区分:var currentUser: FirebaseAuth.User? { Auth.auth().currentUser }
您还可以添加 a
typealias
来给 FirebaseUser
一个不同的名称:typealias FirebaseUser = FirebaseAuth.User
推荐阅读
- list - 目录和子目录中的文件列表
- java - 如果在可能的情况下有一个 int 很重要,那么输入一个数字的最佳做法是什么?
- javascript - 使用 async/await 执行的暂停函数
- c# - 如何在 Visual Studio 中增加 c# 网页上的登录会话超时?
- android - onRequestPermissionsResult / onActivityResult 中的代码是否仍然在 UI 线程上运行?
- nginx - Redmine 无法正常工作。我该如何解决这个问题?
- sql - 如何根据 SQL Server 中的日期拆分记录?
- excel - 如何为我的 Excel 加载项设置最低要求版本?
- google-apps-script - 模板文本文档
- android - 如何在android中显示数据并更新其值