gpt4 book ai didi

java - 我的应用程序直接进入 MainActivity

转载 作者:行者123 更新时间:2023-12-01 17:45:36 26 4
gpt4 key购买 nike

我正在创建一个像 WhatsApp 一样的应用程序,但我遇到了问题。该应用程序应该进入 LoginActivity,但它直接进入 MainActivity,而无需我登录。

我尝试更改 Android list 中的启动器场景,并且发生了同样的事情。我尝试在两个 loadingBar.dismiss(); 的末尾添加 mAuth.signOut(); 。我尝试改变这个SendUserToMainActivity(); 到此 SendUserToRegisterActivity();。我还删除了 firebase 数据库中的所有帐户。

登录 Activity :

private FirebaseUser currentUser;
private FirebaseAuth mAuth;
private ProgressDialog loadingBar;

private Button LoginButton, PhoneLoginButton;
private EditText UserEmail, UserPassword;
private TextView NeedNewAccountLink, ForgetPasswordLink;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);

mAuth = FirebaseAuth.getInstance();
currentUser = mAuth.getCurrentUser();

InitializeFields();

NeedNewAccountLink.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {

SendUserToRegisterActivity();

}
});


LoginButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {

AllowUserToLogin();

}
});


}

private void AllowUserToLogin() {

String email = UserEmail.getText().toString();
String password = UserPassword.getText().toString();

if(TextUtils.isEmpty(email)){

Toast.makeText(this, "Please enter your email", Toast.LENGTH_SHORT).show();
}

if(TextUtils.isEmpty(password)){

Toast.makeText(this, "Please enter your password", Toast.LENGTH_SHORT).show();
}
else{

loadingBar.setTitle("Logging In");
loadingBar.setMessage("Please wait...");
loadingBar.setCanceledOnTouchOutside(true);
loadingBar.show();

mAuth.signInWithEmailAndPassword(email, password)
.addOnCompleteListener(new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {

if(task.isSuccessful())
{
SendUserToMainActivity();
Toast.makeText(LoginActivity.this, "Logged in successfully", Toast.LENGTH_SHORT).show();
loadingBar.dismiss();
}

else{

String message = task.getException().toString();
Toast.makeText(LoginActivity.this, "Error:" + message, Toast.LENGTH_SHORT).show();
loadingBar.dismiss();

}
}
});

}

}

private void InitializeFields() {

LoginButton = (Button) findViewById(R.id.login_button);
PhoneLoginButton = (Button) findViewById(R.id.phone_login_button);
UserEmail = (EditText) findViewById(R.id.login_email);
UserPassword = (EditText) findViewById(R.id.login_password);
NeedNewAccountLink = (TextView) findViewById(R.id.need_new_account_link);
ForgetPasswordLink = (TextView) findViewById(R.id.forget_password_link);
loadingBar = new ProgressDialog(this);

}

@Override
protected void onStart() {
super.onStart();

if (currentUser != null){

SendUserToMainActivity();

}
}

private void SendUserToMainActivity() {

Intent loginIntent = new Intent(LoginActivity.this, MainActivity.class);
startActivity(loginIntent);
}

private void SendUserToRegisterActivity() {

Intent registerIntent = new Intent(LoginActivity.this, RegisterActivity.class);
startActivity(registerIntent);
}

AndroidManifest:

   <application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme"
tools:ignore="GoogleAppIndexingWarning">
<activity android:name=".RegisterActivity" />
<activity android:name=".LoginActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".MainActivity"/>
</application>

最佳答案

清除应用程序的缓存一次,将启动器从主 Activity 更改为登录 Activity 重新构建应用程序,并在登录 Activity 的启动时让用户登录,这就是为什么他总是将您发送到主 Activity ,
如果您已删除 Firebase 中的所有用户,您将获得身份验证,直到您清除缓存。
尝试此解决方案,并告诉我它是否适合您。

关于java - 我的应用程序直接进入 MainActivity,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55783938/

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