gpt4 book ai didi

ios - 卸载应用程序后注销用户 - Firebase

转载 作者:搜寻专家 更新时间:2023-10-30 21:49:02 24 4
gpt4 key购买 nike

从手机上卸载应用后,我的应用不会注销当前用户。我不希望用户卸载该应用程序,并且当他们重新安装它时他们已经登录。

我认为这可能与它的钥匙串(keychain)访问有关?没有把握。我在想也许我需要在删除应用程序后取消对用户的身份验证,但无法检查该情况。最接近的是运行 applicationWillTerminate 函数,但如果我将 FIRAuth.auth()?.signOut() 放在那里,它会注销我的用户每次应用程序被杀死。我不想要那个。

我将如何进行这项工作?

最佳答案

虽然没有用于检查应用程序何时从手机上卸载的函数或处理程序,但我们可以检查它是否是应用程序首次启动。当一个应用程序首次启动时,这很可能也意味着它刚刚安装并且没有在应用程序中进行任何配置。此过程将在 return true 行上方的 didfinishLaunchingWithOptions 中执行。

首先,我们必须设置用户默认值:

let userDefaults = UserDefaults.standard

在此之后,我们需要检查应用程序之前是否已启动或已经运行过:

if (!userDefaults.bool(forKey: "hasRunBefore")) {
print("The app is launching for the first time. Setting UserDefaults...")

// Update the flag indicator
userDefaults.set(true, forKey: "hasRunBefore")
userDefaults.synchronize() // This forces the app to update userDefaults

// Run code here for the first launch

} else {
print("The app has been launched before. Loading UserDefaults...")
// Run code here for every other launch but the first
}

我们现在已经检查了应用程序是否首次启动。现在我们可以尝试注销我们的用户。更新后的条件应该是这样的:

if (!userDefaults.bool(forKey: "hasRunBefore")) {
print("The app is launching for the first time. Setting UserDefaults...")

do {
try FIRAuth.auth()?.signOut()
} catch {

}

// Update the flag indicator
userDefaults.set(true, forKey: "hasRunBefore")
userDefaults.synchronize() // This forces the app to update userDefaults

// Run code here for the first launch

} else {
print("The app has been launched before. Loading UserDefaults...")
// Run code here for every other launch but the first
}

我们现在已经检查了用户是否是第一次启动该应用程序,如果是,则注销用户(如果用户之前已登录)。所有代码放在一起应该如下所示:

let userDefaults = UserDefaults.standard

if (!userDefaults.bool(forKey: "hasRunBefore")) {
print("The app is launching for the first time. Setting UserDefaults...")

do {
try FIRAuth.auth()?.signOut()
} catch {

}

// Update the flag indicator
userDefaults.set(true, forKey: "hasRunBefore")
userDefaults.synchronize() // This forces the app to update userDefaults

// Run code here for the first launch

} else {
print("The app has been launched before. Loading UserDefaults...")
// Run code here for every other launch but the first
}

关于ios - 卸载应用程序后注销用户 - Firebase,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40733262/

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