Я не пробовал этого, но он должен работать, во-первых, после того, как вы войдете в систему с пользователем и войдете внутрь task.isSuccessful
, вы можете получить текущего вошедшего в систему пользователя с помощью task.getResult().getUser().getUid()
.Затем просто зациклите внутри ассоциаций и получите каждый пользовательский ключ (я предполагаю, что внутри ассоциаций есть идентификаторы пользователя как узлы с определенным значением), затем сравните, равен ли текущий вошедший в систему пользователь одному внутри этого узла, если совпадения будут отображать ваш тост, если нет, вы будете перенаправлены.
Попробуйте это
public void onComplete(@NonNull Task<AuthResult> task) {
progressBar.setVisibility(View.GONE);
if (task.isSuccessful()) {
DatabaseReference jLoginDatabase = FirebaseDatabase.getInstance().getReference().child("Associations");
jLoginDatabase.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for(DataSnapshot snapshot : dataSnapshot.getChildren()){
if(snapshot.getKey().equals(task.getResult().getUser().getUid()) {
Toast.makeText(getApplicationContext(), "You are not registered", Toast.LENGTH_SHORT).show();
}
else
{
finish();
Intent intent = new Intent(SignInDonor.this, homedonor.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
}
}
Я использовал addListenerForSingleValueEvent
, потому что нам нужно только один раз выполнить цикл на эталоне и не продолжать слушать данные