Я создаю социальное приложение для своих исследований, и мне нужно использовать Firebase firestore, чтобы хранить некоторую информацию о моем приложении.
Моя проблема проста, но я не понимаю, почему у меня эта проблема. Когда пользователь создает действие, это также создает чат и приветственное сообщение. но мой метод (так мой запрос firebase) вызывается два раза.
private void createAct(SharedActivity SharedAct) {
ActivityHelper.createActivities(SharedAct.getId(), SharedAct.getTitle(), SharedAct.getDescription(), SharedAct.getAdress(), SharedAct.getDate(), SharedAct.getPicture(), SharedAct.getMaxPartner(), SharedAct.getType(), SharedAct.getUserId()).addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
createWelcomeMess(SharedAct);
}
});
}
/**
* To generate a new message in the new activity
* To launch the discussion in the activity
*/
private void createWelcomeMess(SharedActivity activityCreated) {
if (!activityAlreadyCreated){
MessageHelper.createMessageForChat("Bienvenue dans le chat de discussion", activityCreated.getId(), user).addOnSuccessListener(documentReference -> {
Toast.makeText(getActivity(), "Votre Activité est bien crée", Toast.LENGTH_SHORT).show();
Log.i(TAG, "onSuccess: message created");
activityAlreadyCreated = true;
new Handler().postDelayed(() -> {
MainDashBoardFragment fragment = new MainDashBoardFragment();
Bundle bundle = new Bundle();
bundle.putString("id", ID);
fragment.setArguments(bundle);
getParentFragmentManager().beginTransaction().add(R.id.main_frame_layout, fragment).addToBackStack("frag").commit();
}, 1000);
});
}
Можете ли вы дать мне некоторые объяснения и как решить эту проблему?
Что я уже пробовал:
- Инициализируйте этот метод в OnResume LifeCycle.
- Измените метод Onclick (с ножом для масла), чтобы слушать onclick с помощью базового c onclickListener.
- Поместите немного логического значения помечать, когда сообщение уже создано
private void createWelcomeMess(SharedActivity activityCreated) {
if (!activityAlreadyCreated){
MessageHelper.createMessageForChat("Bienvenue dans le chat de discussion", activityCreated.getId(), user).addOnSuccessListener(documentReference -> {
Toast.makeText(getActivity(), "Votre Activité est bien crée", Toast.LENGTH_SHORT).show();
Log.i(TAG, "onSuccess: message created");
activityAlreadyCreated = true;
new Handler().postDelayed(() -> {
MainDashBoardFragment fragment = new MainDashBoardFragment();
Bundle bundle = new Bundle();
bundle.putString("id", ID);
fragment.setArguments(bundle);
getParentFragmentManager().beginTransaction().add(R.id.main_frame_layout, fragment).addToBackStack("frag").commit();
}, 1000);
});
}