В моем приложении пользователь может зарегистрироваться и затем войти в систему, после успешного входа он переходит к действиям с событиями и прочим в соответствии со своими предпочтениями. Я могу зарегистрироваться и войти в систему. Но после подписки я не могу получить текущего пользователя из firebase auth. и я правильно вхожу. Я новичок в Android. Вся помощь будет оценена.
Первый код - логин, а второй - где я пытаюсь получить UID.
public class LoginActivity extends AppCompatActivity {
FirebaseDatabase database = FirebaseDatabase.getInstance();
private DatabaseReference mdatabase;
private DatabaseReference fdatabase;
FirebaseAuth auth = FirebaseAuth.getInstance();
FirebaseUser user = auth.getCurrentUser();
private EditText txtEmailLogin;
private EditText txtPassLogin;
private FirebaseAuth firebaseAuth;
private FirebaseAuth.AuthStateListener mAuthlistener;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
txtEmailLogin = findViewById(R.id.EmailEditText);
txtPassLogin = findViewById(R.id.PassEditText);
firebaseAuth = FirebaseAuth.getInstance();
//controleert als er ingelogd moet worden of niet.
/* if (firebaseAuth.getCurrentUser() != null)
{
Intent i = new Intent(LoginActivity.this, Home.class);
i.putExtra("Email", firebaseAuth.getCurrentUser().getEmail());
startActivity(i);
}*/
}
public void btnregister_Click(View v) {
Intent i = new Intent(LoginActivity.this,RegisterActivity.class);
startActivity(i);
}
public void btnLogin_Click(View v){
ProgressDialog progressDialog = ProgressDialog.show(LoginActivity.this,"Please Wait...", "Processing...", true);
(firebaseAuth.signInWithEmailAndPassword(txtEmailLogin.getText().toString(), txtPassLogin.getText().toString()))
.addOnCompleteListener(new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if(task.isSuccessful()) {
Toast.makeText(LoginActivity.this ,"Login Succesfull" ,Toast.LENGTH_SHORT).show();
Intent i = new Intent(LoginActivity.this, Home.class);
startActivity(i);
}
else
{
Log.e("Error", task.getException().toString());
Toast.makeText(LoginActivity.this, task.getException().getMessage(),Toast.LENGTH_LONG).show();
}
}
});
}
}
public class Home extends AppCompatActivity {
FirebaseAuth mAuth;
FirebaseAuth.AuthStateListener mAuthListener;
TextView txtUserNaam;
String uid,UserName;
FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference mdatabase;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_home);
mAuth=FirebaseAuth.getInstance();
mAuthListener=new FirebaseAuth.AuthStateListener() {
@Override
public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
if (mAuth.getCurrentUser().getUid() == null) {
//Your action here
Intent i = new Intent(Home.this, LoginActivity.class);
startActivity(i);
} else {
txtUserNaam = findViewById(R.id.txtusernaam);
mdatabase.child("USERS").child(firebaseAuth.getCurrentUser().getUid()).addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
UserName = dataSnapshot.child("UserName").getValue(String.class);
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
txtUserNaam.setText(UserName);
}
}
};
}
}