Решение, которое работает для вас, является правильным решением. Я делал то же самое.
profileListener = new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
String imageUrl = dataSnapshot.getValue(String.class);
if (ProfileFragment.this.getActivity() != null)
Glide.with(ProfileFragment.this.getActivity())
.load(imageUrl)
.placeholder(R.drawable.default_image)
.circleCrop()
.into(photoPhoto);
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
};
Если вы находите эту вещь медленной, просто включите постоянное сохранение в firebase.
FirebaseDatabase.getInstance().setPersistenceEnabled(true);
Перед вызовом любого экземпляра FirebaseDatabase при открытом приложении.
Firebase очень эффективно управляет синхронизацией.
Примечание. - Если вы обнаружите случайную аномалию, вызывающую моментальный снимок во время разработки приложения, попробуйте очистить данные приложения или переустановить.
Отлично сработало для меня!