即使卸载应用后,如何记住Firebase电话Auth的登录信息?

时间:2019-04-21 07:28:59

标签: android authentication firebase-authentication login-control

即使卸载了该应用程序,我也希望保持用户登录状态。我将电话Auth用于Firebase。从堆栈溢出中,我发现并品尝了以下代码来检查用户是否存在:

FirebaseAuth.AuthStateListener authStateListener = new FirebaseAuth.AuthStateListener() {
    @Override
    public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
        FirebaseUser firebaseUser = firebaseAuth.getCurrentUser();
        if (firebaseUser != null) {
            Intent intent = new Intent(PhoneAuthActivity.this, MainActivityDriverLogin.class);
            startActivity(intent);
            finish();
        }else {
            Toast.makeText(PhoneAuthActivity.this, "Please Write Your Phone Number", Toast.LENGTH_SHORT).show();
        }
    }
};

然后我将onStart设置为

mAuth.addAuthStateListener(authStateListener);

但是,没有运气,当我再次安装应用程序时,必须再次使用电话号码。

我也在Manifests中尝试过:

    android:allowBackup="true"
    android:fullBackupContent="true"

但是,尽管登录丢失了。

有没有办法一次性登录应用程序,并且即使应用程序没有受到干扰,甚至清除系统中的缓存仍保持登录状态?

1 个答案:

答案 0 :(得分:0)

我认为您正在寻找android中的智能锁定功能。Google smartlock。 您需要在认证中启用该功能。我假设您正在使用Firbase Authenitaction Ui使用此方法 .setIsSmartLockEnabled(true)

AuthUI.getInstance()
                                    .createSignInIntentBuilder()
                                    .setIsSmartLockEnabled(true)
                                    .setProviders(Arrays.asList(
                                            new AuthUI.IdpConfig.Builder(AuthUI.GOOGLE_PROVIDER).build()))
                                    .build(), RC_SIGN_IN
                            );