//LOGIN code
//2 main instance variables:
private DatabaseReference _mDatabase;
private FirebaseAuth _mAuth;
@Override
protected void onCreate(Bundle savedInstanceState) {
_mDatabase = FirebaseDatabase.getInstance().getReference();
_mAuth = FirebaseAuth.getInstance();
if (_mAuth.getCurrentUser() != null) {
login();
}
}
public void login() {
//move us to the next activity
Intent intent = new Intent(this, UserListActivity.class);
startActivity(intent);
//startActivity(new Intent(this, UserListActivity.class)); //THIS IS BETTER
}
//try to login
public void goClicked(View view) {
//check if we can log in the user
final String email = _emailEditText.getText().toString();
final String password = _passwordEditText.getText().toString();
//if (!(TextUtils.isEmpty(email) || TextUtils.isEmpty(password))) //THIS IS BETTER
if (!email.matches("") && !password.matches("")) {
_mAuth.signInWithEmailAndPassword(email, password)
.addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (task.isSuccessful()) {
login();
} else {
//sign-up the user via Firebase createeUserWithEmailAndPassword
_mAuth.createUserWithEmailAndPassword(email, password)
.addOnCompleteListener(MainActivity.this, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (task.isSuccessful()) {
// add the user to Firebase real-time database to directory users > UID > email
_mDatabase.child("users").child(task.getResult().getUser().getUid()).child("email").setValue(email);
login();
} else {
Toast.makeText(MainActivity.this, "Login failed. Try again", Toast.LENGTH_SHORT).show();
}
}
});
}
}
});
} else {
Toast.makeText(this, "Email and password must not be empty", Toast.LENGTH_SHORT).show();
}
}