gpt4 book ai didi

swift - 多个用户访问相同的 userdefault 数据 Swift

转载 作者:行者123 更新时间:2023-11-28 14:03:01 24 4
gpt4 key购买 nike

我有一个应用程序允许用户创建新帐户或通过 facebook/Google 登录。一些次要数据(如个人资料名称等)存储在用户默认值中。我正在使用 Firebase 进行登录。

问题:用户 A 注销其帐户后,用户 B 登录后,用户 B 可以看到用户 A 的数据(保存在用户默认值中)。

我想要的:显然这不应该发生,用户 B 不应该 看到用户 A 的数据。我怎样才能使它工作?

注销代码

 @IBAction func logout(_ sender: Any) {      

if Auth.auth().currentUser != nil {
do {
try Auth.auth().signOut()

let vc = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "Login")
present(vc, animated: true, completion: nil)

} catch let error as NSError {
print(error.localizedDescription)
}
}else {
GIDSignIn.sharedInstance()?.signOut()

let vc = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "Login")
present(vc, animated: true, completion: nil)

}

let firebaseAuth = Auth.auth()
do {
print("logged out success!")
try firebaseAuth.signOut()

} catch let signOutError as NSError {
print ("Error signing out: %@", signOutError)
}


}

编辑:我刚刚开始将 UID 存储到 userdefaults 中。

最佳答案

除此之外,您还可以存储 Data UserDefaults 中的对象,这意味着这可能是具体的 Codable结构,您还可以存储 dictionaries在 UserDefaults 中。

假设你有两个用户,你需要存储有关的信息,识别这个用户的方法是通过用户名。

这将是您的存储代码,您会看到如何将所需的所有详细信息“打包”到 Dictionary 中并按用户名将其存储在默认值中。这意味着无论何时您需要检索信息,您只需要一个用户名。

var userDict: [String: Any] = [:]
let username: String = "user@name"
let age: Int = 25
let language: String = "en"

userDict = ["username": username,
"age": age,
"language": language]

UserDefaults.standard.set(userDict, forKey: username)

并在将来检索包含您需要的所有信息的字典:

let userData = UserDefaults.standard.dictionary(forKey: username)

现在从中获取你的东西:

let age = userData["age"] // 25
let language = userData["language"] // en

关于swift - 多个用户访问相同的 userdefault 数据 Swift,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53358192/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com