【问题标题】:FirebaseAuth.getInstance().getCurrentUser() returns previously logged out userFirebaseAuth.getInstance().getCurrentUser() 返回以前注销的用户
【发布时间】:2016-06-17 17:17:03
【问题描述】:

我有使用 FirebaseAuth 和 FirebaseDatabase 功能的 Android 应用。一切正常。

上周我与一个用户(用户 1)作为应用的管理员一起工作,昨天我将另一个用户(用户 2)注册为普通用户(不是管理员)。

由于我所有的管理功能都运行良好,我再也没有以用户 1 的身份登录。但是我今天不得不卸载我的应用程序,到那时我已经以用户 2 的身份登录了。

当我再次重新安装它时,由于某种原因,我自动以用户 1 身份登录。所以我注销并再次以用户 2 身份登录并再次卸载。同样的事情一次又一次地发生。

我检查了我从 FirebaseAuth 获得的用户 ID,以及我之前注销的用户 1 的用户 ID。

FirebaseAuth auth = FirebaseAuth.getInstance();
if(auth !=null)
{
    String uid = auth.getCurrentUser.getUid();
}

请帮我解决这个问题,我在下面添加了我的注销代码。

 AuthUI.getInstance()
    .signOut(ShopHome.this)
    .addOnCompleteListener(new OnCompleteListener<Void>() {
        public void onComplete(@NonNull Task<Void> task) {
           // Code for login Activity              
         }
    });

【问题讨论】:

    标签: android firebase firebase-authentication firebaseui


    【解决方案1】:

    您正在使用 FirebaseUI-Android,它使用 Smart Lock 自动登录,即使在卸载应用程序之后也是如此。如果您不想自动登录,可以使用 Smart Lock 禁用自动登录。

    【讨论】:

    • 它可以帮助您在测试过程中确保您调用AuthUI#signOut,从而防止您下次启动应用程序时自动登录。
    • 问题是它会自动以我已经使用 AuthUI 注销的另一个用户身份登录。
    • 看来 FirebaseUI-Android 应该被修复为至少能够取消智能锁定登录。但是,我怎样才能避免我的设备使用智能锁定?我无法在任何地方关闭智能锁(4.4.2 和 5.1.1)
    • 您应该能够通过转到Settings -&gt; Google -&gt; SmartLock for Passwords 来禁用设备上的 SmartLock。
    【解决方案2】:

    用不同的设备制作一个新的模拟器。这是我绕过这个问题的方式。

    【讨论】:

      猜你喜欢
      • 2017-12-14
      • 1970-01-01
      • 1970-01-01
      • 2019-10-13
      • 1970-01-01
      • 1970-01-01
      • 2013-07-02
      • 2019-03-05
      • 2015-09-11
      相关资源
      最近更新 更多