Обновление в FireStore не работает, как предполагалось - PullRequest
0 голосов
/ 17 мая 2019

Я устанавливаю функцию обновления, при которой каждый раз, когда пользователь нажимает кнопку, в firestore происходит уменьшение единицы на единицу ... но проблема в том, что она не просто останавливается, когда продолжает снижаться до тех пор, пока значение не достигнет нуля

final String di=getIntent().getStringExtra("DocumentID");
DocumentReference dref=db.collection("User").document(di);
Toast.makeText(managersAction.this," "+di+" "+j,Toast.LENGTH_LONG).show();
dref.addSnapshotListener(new EventListener<DocumentSnapshot>() {
@Override
public void onEvent(
@Nullable DocumentSnapshot documentSnapshot,            
@Nullable F  irebaseFirestoreException e) {
    String space=documentSnapshot.getString("Space");
    int s=Integer.parseInt(space);
    if(s==0){
        AlertDialog.Builder x=
 new AlertDialog.Builder( managersAction.this);
        x.setMessage("Not Allowed")
  .setPositiveButton (android.R.string.ok,null);
        AlertDialog v=x.create();
        v.show();
    }
    else{
        int newspace = s - 1;
        final String sp = Integer.toString(newspace);

   Toast.makeText(mnagersAction.this, " "+sp,Toast.LENGTH_LONG).show   ();
        DocumentReference dref=db.collection("User").document(di);
        dref.update("Space",sp);
                return;
    }
return;
}
});

1 Ответ

0 голосов
/ 18 мая 2019

Удалите приведенный ниже код из слушателя:

DocumentReference dref=db.collection("User").document(di);
dref.update("Space",sp);

Поскольку прослушиватель событий будет вызываться каждый раз, когда происходит изменение в дБ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...