gpt4 book ai didi

android - Firebase Auth 在卸载后保存。我怎样才能删除它?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:09:42 25 4
gpt4 key购买 nike

我最近发现,即使在我的应用程序被卸载后,Firebase Auth 也会将自身保存在设备上。我不知道如何删除这个旧的授权信息。

我不希望用户在卸载并重新安装应用后仍然登录。如果没有其他原因,只是我自己测试了我希望在同一台设备上“全新安装”的内容。

我知道没有简单的方法来捕获卸载事件,所以我想在第一次启动时清除所有潜在的旧授权信息。

所以我添加了代码(看起来工作正常)来检查这是否是第一次启动:

Boolean firstRun = prefs.getBoolean("firstrun", true);
if (firstRun) {
// delete everything an old user could have left behind
// ==> This is where I need help <==
prefs.edit().putBoolean("firstrun", false).apply();
} else {
// move along, not the first launch
}

我试过(不成功):

FirebaseAuth authData = FirebaseAuth.getInstance();  
authData.signOut();

这些调用似乎也是 iOS 相关问题中的建议,但我无法应用它的智慧: Firebase - Deleting and reinstalling app does not un-authenticate a user

即使在调用 signOut() 之后,该应用程序仍让我使用旧帐户登录!

我的“注销”按钮使用 FirebaseAuth.getInstance().signOut(); 并且有效。 卸载后保存的这个“旧”Auth 实例有什么奇怪的(被附身的吗?),它不会死

特别是当我从 Android Studio 卸载然后安装/运行时:

  1. 起初 authData 和 currentUser 都不为空
  2. 我调用上面的代码,试图摆脱这个老用户
  3. 3 毫秒后(在我调用它之后立即代码)它们仍然不是 NULL。
  4. 再过 2 毫秒,currentUser 为 NULL(是吗?)
  5. 另外 71 毫秒...仍然为空(到目前为止一切正常)
  6. 不到一秒钟后...我以老用户的身份登录了?!这怎么可能?

在身份验证下的 Firebase 控制台中,此帐户显示为 6 天前最后一次登录。所以它不会以某种方式重新登录。

有谁知道如何从设备中删除 FirebaseAuth 数据?我不想“删除”用户帐户,只是从此设备上删除它的所有痕迹。

奇怪的是,我一直在无意中登录的帐户甚至不是在此设备上登录我的应用程序的最后一个帐户。这在过去从来都不是问题(因此我什至不知道 Firebase 在卸载后保存了 Auth)。所以看起来 Auth 信息在卸载后并不总是保存...但是当它发生时就无法删除?

非常感谢任何帮助!

最佳答案

添加android:allowBackup="false"在你的<application>在 list 中:

来自文档:

android:allowBackup

Whether to allow the application to participate in the backup and restore infrastructure. If this attribute is set to false, no backup or restore of the application will ever be performed, even by a full-system backup that would otherwise cause all application data to be saved via adb. The default value of this attribute is true.

关于android - Firebase Auth 在卸载后保存。我怎样才能删除它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50257219/

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