Я работаю над социальным приложением с рангами.
После того, как один пользователь нажал кнопку «Мне нравится» на своем телефоне, у меня появился пользователь, которому пришло уведомление о том, что он показывает AlertDialog
на своем экране.
Я знаю, чтобы отобразить AlertDialog
прослушивая документ об изменении в моей базе данных Firestore.
Я написал работающий код, который выглядит следующим образом:
private void popRankUpReturner(Context context, String OtherUserId){
final CollectionReference colRef = db.collection("Users");
colRef.addSnapshotListener(new EventListener<QuerySnapshot>() {
@Override
public void onEvent(@Nullable QuerySnapshot snapshots,
@Nullable FirebaseFirestoreException e) {
if (e != null) {
Log.w("TAG", "listen:error", e);
return;
}
for (DocumentChange dc : snapshots.getDocumentChanges()) {
popRankUp(context); ---> This one make the AlertDialog
}
}
});
}
Затем я написал этот код в своем OnCreate
.
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate( savedInstanceState );
setContentView( R.layout.activity_chat );
getSupportActionBar().hide();
db = FirebaseFirestore.getInstance();
receiverID = getIntent().getExtras().getString( "ReceiverID" );
popRankUpReturner(context, receiverID);
}
Проблема в том, что пользователь получает этот AlertDialog только тогда, когда он вводит это заданное c действие, поскольку оно находится в OnCreate
.
Мой вопрос: как можно Я вызываю прослушивание изменений документа из любого действия в моем приложении, поэтому в тот момент, когда пользователь получил «лайк», он покажет AlertDialog
независимо от активности или, по крайней мере, покажет, когда пользователь в действии уже и не только когда он входит в деятельность.
Спасибо