package com.casser.casser;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import android.app.ProgressDialog;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.text.TextUtils;
import android.util.Log;
import android.view.View;
import android.view.WindowManager;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ProgressBar;
import android.widget.TextView;
import android.widget.Toast;
import com.google.android.gms.tasks.OnCompleteListener;
import com.google.android.gms.tasks.Task;
import com.google.firebase.auth.AuthResult;
import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.auth.FirebaseUser;
import com.google.firebase.database.DataSnapshot;
import com.google.firebase.database.DatabaseError;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import com.google.firebase.database.ValueEventListener;
import com.google.firebase.database.core.Tag;
import org.w3c.dom.Text;
public class Login extends AppCompatActivity {
EditText email, password;
Button login;
TextView txt_signup;
FirebaseAuth auth;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
// This is ths screen optimization...
try {
this.getSupportActionBar().hide();
} catch (NullPointerException e) {
}
View decorView = getWindow().getDecorView();
int uiOptions = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_FULLSCREEN;
decorView.setSystemUiVisibility(uiOptions);
setContentView(R.layout.activity_login);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
/*
FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
if (user != null) {
// User is signed in
Intent i = new Intent(Login.this, MainActivity.class);
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(i);
} else {
// User is signed out
}
*/
// This is ths screen optimization... After this the main login screen is there Work from below don't touch code above!
email = findViewById(R.id.email);
password = findViewById(R.id.password);
login = findViewById(R.id.login);
txt_signup = findViewById(R.id.txt_signup);
auth = FirebaseAuth.getInstance();
final SharedPreferences sp;
sp = getSharedPreferences("login",MODE_PRIVATE);
if(sp.getBoolean("logged",false)){
goToMainActivity();
}
login.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
goToMainActivity();
sp.edit().putBoolean("logged",true).apply();
}
});
txt_signup.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(Login.this, SignUp.class));
}
});
login.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
final ProgressDialog pd = new ProgressDialog(Login.this);
pd.setMessage("Please wait...");
pd.show();
String str_email = email.getText().toString();
String str_password = password.getText().toString();
if (TextUtils.isEmpty(str_email) || (TextUtils.isEmpty(str_password))) {
Toast.makeText(Login.this, "All fields are required", Toast.LENGTH_SHORT).show();
} else {
auth.signInWithEmailAndPassword(str_email, str_password)
.addOnCompleteListener(Login.this, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (task.isSuccessful()) {
DatabaseReference reference = FirebaseDatabase.getInstance().getReference().child("Users")
.child(auth.getCurrentUser().getUid());
reference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
pd.dismiss();
Intent intent = new Intent(Login.this, MainActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(intent);
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
pd.dismiss();
}
});
} else {
pd.dismiss();
Toast.makeText(Login.this, "SignIn failed", Toast.LENGTH_SHORT).show();
}
}
});
}
}
});
}
public void goToMainActivity() {
Intent i = new Intent(this, MainActivity.class);
startActivity(i);
}
}
我怎样才能让用户保持登录我的应用程序我已经用firebase完成了身份验证我怎样才能让他们保持登录状态我已经尝试了很多事情,但它们的工作方式与你登录后的工作方式不同,然后你就不需要了再次登录,除非您注销或删除您的应用程序,否则我还可以提供一些示例,例如 facebook snapchat instagram AnyHelp 将非常有帮助 我开始任何帮助将不胜感激