在Firestore中批量写入后,如何获取更新的文档参考?

时间:2019-06-20 12:16:49

标签: java android firebase google-cloud-firestore

我有一个使用批处理更新的文档,提交后如何获取文档参考或数据。

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 个答案:

答案 0 :(得分:1)

根据您的评论:

  

我的意思是提交后我需要该文档中的值

如果在批量写入结束后需要新的更新值,则需要在完全相同引用上进行get()调用。为了确保批量写入已完成,应该从回调内部的onComplete()方法内部获取该文档。

d.get().addOnCompleteListener(/* ... */);