gpt4 book ai didi

swift - Firebase Auth Check 返回一个用户,即使那里(绝对)不应该是一个用户

转载 作者:行者123 更新时间:2023-11-28 08:02:13 26 4
gpt4 key购买 nike

我正在执行检查以查看是否存在用户 session ,如果没有则创建一个匿名帐户

这在几天前一直运行良好,但就在发布之前,我们进行了最后的检查,现在用户检查返回了一个用户 ID,尽管本不应该有一个用户 ID。

应用程序已全新安装,但 usr 永远不会为零 - 这正是我所期望的。我们每次卸载重装,用户ID都是完全一样的。 Firebase 中没有创建匿名用户。

故事中的另一个转折可能有助于诊断。它在模拟器上按预期工作......我最近一直在努力设置推送通知。

// Check if user is logged in, if not, create anonymous auth so users can access DB and storage w/o an account
let checkAuth = Auth.auth().addStateDidChangeListener { auth, usr in
if usr == nil {

// No user is signed in.
Auth.auth().signInAnonymously() { (usr, err) in
if (err == nil) {
let uid = usr!.uid
print("Anon User ID \(uid)")
} else {
print("Anon auth error \(String(describing: err!.localizedDescription))")
}
}
} else {
print("User ID \(usr!.uid) and provider \(usr!.providerID)")
}
}

Auth.auth().removeStateDidChangeListener(checkAuth)
return true

最佳答案

Firebase 可能使用钥匙串(keychain)来存储用户 session 。钥匙串(keychain)在模拟器和设备上的行为不同。因为它使用钥匙串(keychain),所以存储的用户 session 将在应用程序卸载/重新安装后继续存在。

一个简单的修复:使用 UserDefaults 存储一个标志,确定这是否是应用程序安装后的第一次运行。在你的 AppDelegate 中,查询标志,试试? Auth.auth().signOut() 并更新标志。

关于swift - Firebase Auth Check 返回一个用户,即使那里(绝对)不应该是一个用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46347829/

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