Как получить обновленную ссылку на документ после пакетной записи в Firestore? - PullRequest
1 голос
/ 20 июня 2019

У меня есть документ, который я обновил с помощью пакетного обновления, как получить ссылку на документ или его данные после подтверждения.

DocumentReference d = db.collection("posts").document(p.getUserId()).collection("userPosts")
                     .document(p.getDocId());

batch.update(d,"commentCount", FieldValue.increment(1));



batch.commit().addOnCompleteListener(new OnCompleteListener<Void>() {
            @Override
            public void onComplete(@NonNull Task<Void> task) {
                if (task.isSuccessful())
                {
                    Log.d("post","Successfully batch writteen");
                    Intent resultIntent = new Intent();
                    resultIntent.putExtra("docId", p.docId);
                    //Need result document here
                    resultIntent.putExtra("commentCount", task.getResult());
                    setResult(RESULT_OK);
                    finish();
                }
                else
                {
                    Log.d("post","Failed batch write");
                    finish();
                }

            }
        });

1 Ответ

1 голос
/ 20 июня 2019

Согласно вашему комментарию:

я имею в виду, что после коммита мне нужны значения внутри этого документа

Если вам нужны новые обновленные значения после окончания пакетной записи, вам нужно сделать get() вызов с точной той же ссылкой. Чтобы быть уверенным, что пакетная запись завершена, вы должны получить этот документ изнутри обратного вызова, изнутри метода onComplete().

d.get().addOnCompleteListener(/* ... */);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...