Метод addListenerForSingleValueEvent
не возвращает Task
, поэтому вы не можете подключить к нему прослушиватель успеха.
Если вам нужно запустить какой-то код после загрузки данных, поставьтеэтот код в методе onDataChange
.Если код должен также работать, если слушатель отклонен правилами безопасности на стороне сервера, также добавьте / вызовите тот же код из onCancelled
.
Так что-то вроде:
databaseReference.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
for (DataSnapshot dataSnapshot1 : dataSnapshot.getChildren())
{
if (Objects.equals(dataSnapshot1.getKey(), userId))
{
MyUserData myUserData = dataSnapshot1.getValue(MyUserData.class);
myUserDataList.add(myUserData);
}
}
onResponseReceived();
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
Log.w(TAG, "Error listening for data: "+databaseError.toString());
onResponseReceived();
}
private void onResponseReceived() {
... do what you need to do here ...
}
});