java - 如何在后退按钮上停止 firebase 注销?
问题描述
在你从 stackoverflow 中删除我的问题之前,请听我说完。我知道这个问题很常见,但我尝试过的都没有帮助我。我已经在 stackoverflow 和其他网站上看到了可用的解决方案,但它们并没有解决我的问题。所以即使你选择从这个论坛中删除我的问题,请先帮我解决我的问题,至少给我发邮件。
button1.setOnClickListener(view -> {
login();
});
}
public void login() {
Intent intent = new Intent(this, IndexActivity.class);
String mail = et1.getText().toString();
String password = et2.getText().toString();
if (mail.isEmpty()) {
error.setText(e1);
} else if (password.isEmpty()) {
error.setText(e2);
} else if (password.length() < 6) {
error.setText("Invalid Password Length!!");
et2.setError("Password length must be at least 6!!");
} else {
mAuth.signInWithEmailAndPassword(mail, password).addOnCompleteListener(task -> {
if (task.isSuccessful()) {
Toast.makeText(MainActivity.this, "Welcome Back",Toast.LENGTH_LONG).show();
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(intent);
error.setText("");
et1.setText("");
et2.setText("");
}
else {
Toast.makeText(MainActivity.this, " "+ Objects.requireNonNull(task.getException()).getMessage(),Toast.LENGTH_LONG).show();
error.setText(e3);
}
});
}
if (error.getText().toString().isEmpty()) {
error.setVisibility(View.INVISIBLE);
} else {
error.setVisibility(View.VISIBLE);
}
}
}
以上是我的登录页面
下面是我的孩子活动
logout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (mAuth.getCurrentUser() != null) {
Intent intent = new Intent(getApplicationContext(), MainActivity.class);
mAuth.signOut();
startActivity(intent);
finish();
}
else {
Intent intent = new Intent(getApplicationContext(), MainActivity.class);
startActivity(intent);
}
}
});
我已经尝试了互联网上的一切。sharedPreferences、onBackPressed 覆盖、onSaveInstanceState、onRestoreInstanceState、onStart 和 onResume 覆盖,但我不知道具体要使用什么。
解决方案
检查用户是否已经登录
if (auth.getCurrentUser() != null)
//user logged in already, do your work here for logged in user
else
//user is not logged in, let user login
推荐阅读
- reactjs - 我如何测试对象内部的函数调用?
- python - Postgres SQL - 没有为创建类型保留的光标
- node-sqlite3 - 如何使用 On Conflict 插入数据,它将在 sqlite 中替换
- css - 为什么我在文档中看到有关 flexbox 的冲突信息?
- android - Android Studio 未连接到虚拟设备
- ruby-on-rails - 如何根据数组中的响应值对循环进行排序
- android - 简单=赋值和获取实例时的区别?
- javascript - Visual Studio Сode 在绝对路径中看不到波浪号 (~)
- laravel - Eloquent hasMany 不适用于点符号
- spring - Spring Framework 3 中的 Starter 异步类