为什么卸载应用程序后仍保留 FirebaseAuth currentUser()?

Dan*_*ial 6 android flutter

每当我第一次运行我的应用程序(仅当我卸载并重新安装应用程序时),我试图在 Flutter 中获取用户的登录状态,以下代码返回用户。

我已经尝试获取用户whenComplete并then返回相同的结果。

 FirebaseAuth _firebaseAuth = FirebaseAuth.instance;    
 FirebaseUser user = await _firebaseAuth.currentUser();
 return user;
Run Code Online (Sandbox Code Playgroud)

返回的用户是我的 Android 设备上的平台用户,如果我在安装后重新加载我的应用程序,用户将被删除。

编辑:

  1. 我已经尝试了/sf/answers/3406255121/中的所有步骤
  2. 我从 Firebase 中删除了所有用户
  3. 我的应用程序显示的用户 ID 不在我的 Firebase 中。

有趣的是最小化应用程序会删除未知用户。

Mig*_*ivo 4

发生这种情况是因为,在某些情况下,无论应用程序是否被删除,数据都会离线保存,因此无论您以前的 Firebase 用户如何。

参考这个答案:

这是因为Android 6有自动备份功能。如果您不希望备份数据或者想要包含或排除某些资源,则需要调整清单标记中的 android:allowBackup 和 android:fullBackupContent。这不是一个错误。

所以基本上,在manifest.xml中添加android:allowBackup="false"andandroid:fullBackupContent="false"就可以了。

  • 那么 iOS 设备呢?我也遇到同样的问题,不过是在 iOS 上 (4认同)