Firebase 登录用户身份验证回调结果中用户的数据类型是什么



我是 swift 编程的新手。我正在尝试重构我的代码,使其看起来更具可读性。

使用谷歌帐户成功登录并登录到Firebase身份验证后。我想使用 UserDefaults 保存用户基本信息,并且该操作将通过saveUserUsingUserDefault(user: USER)方法执行,该方法将从 Firebase 身份验证中获取用户结果。

但是当我编写方法时,我需要知道用户的数据类型

func saveUserUsingUserDefault(_ user: iDontKnowWhatDataTypeShouldBeUsedInHere ) {}

我试图跳转到 Xcode 中的定义,但我卡住了,我不知道我应该使用什么数据类型。我找不到数据类型。我也无法读取目标 C 中的代码。这是我使用的代码。

Auth.auth().signIn(with: credential) { (USER, error) in
    if let error = error {
        print("failed to create firebase user using google account")
        print("(error.localizedDescription)")
        return
    }
    print("user successfully logged into firebase")
    saveUserUsingUserDefault(user: USER)
    self.login()
}
func saveUserUsingUserDefault(_ user: iDontKnowWhatDataTypeShouldBeUsedInHere ) {
    //Save User basic information using User Default Data Persistance
    let basicUserInformation = [
            "fullname" : user.displayName,
            "email" : user?.email,
            "city" : ""
        ]
    UserDefaults.standard.set(basicUserInformation, forKey: "basicUserInformation")
    // assign the value to superglobal variable 'userInformation' in AppDelegate
    userInformation = UserDefaults.standard.object(forKey: "basicUserInformation") as? [String:Any]
}

Firebase已经有了自己的方法来默认获取currentUser,因此您无需在用户默认值中保存。最重要的是,出于最佳实践,不建议将当前用户保存在用户默认值中。在 Firebase 身份验证中,您可以通过以下方式获取当前用户:

let auth = Auth.auth()
let currentUser = auth.currentUser

通过在身份验证中调用 currentUser 属性返回的当前用户类型将以用户类型(Firebase 用户类型(返回,默认情况下,它将具有显示名称、uid、电子邮件和您需要的所有内容。

我通常会创建自己的 FirbaseController 来处理所有 Firebase 内容,并在内部创建 getCurrentUser(( 方法。

最新更新