У меня есть три действия «Регистрация», «Войти» и «Главная». Когда пользователь вводит свои регистрационные данные, я отправляю идентификатор электронной почты в базу данных firebase после успешной регистрации. Данные пользователя успешно отправлены. Теперь открывается MainActivity Foll - это код в моем RegisterActivity
mFirebaseDatabase = FirebaseDatabase.getInstance();
mMessagesDatabaseReference = mFirebaseDatabase.getReference().child("loginusers");
firebaseAuth.createUserWithEmailAndPassword(email,password).addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if(task.isSuccessful()){
Toast.makeText(RegisterActivity.this,"Registration Success",Toast.LENGTH_LONG).show();
saveDisplayName();
User user = new User(email);
mMessagesDatabaseReference.push().setValue(user);
......}
Теперь я хочу получить всех пользователей, которые зарегистрированы в моем ArrayList MainActivitie. Итак, я написал следующий код в своей MainActivity
mFirebaseDatabase = FirebaseDatabase.getInstance();
mMessagesDatabaseReference = mFirebaseDatabase.getReference().child("loginusers");
mMessagesDatabaseReference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot snapshot) {
contactList.clear();
for (DataSnapshot postSnapshot : snapshot.getChildren()) {
User user = postSnapshot.getValue(User.class);
if(!contactList.contains(user)){
contactList.add(user);
}
}
for(int i=0;i<contactList.size();i++){
Toast.makeText(getApplicationContext(),"Hi"+contactList.get(i),Toast.LENGTH_SHORT).show();
Log.i("Pritish", "onDataChange: "+contactList.get(i));
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
но этот метод никогда не вызывается. Теперь я знаю, что могу написать код, написанный в моей MainActivity, в RegisterActivity, а затем передать список пользователей с помощью Intent, но я не хочу этого делать, поскольку это может создать проблему, если пользователь использует LoginActivity. Пожалуйста помоги