java - 在 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();
}
}
});
解决方案
根据您的评论:
我的意思是在提交后我需要该文档中的值
如果在批量写入结束后需要新的更新值,则需要get()
调用完全相同的引用。为了确保批量写入完成,您应该从回调内部,从onComplete()
方法内部获取该文档。
d.get().addOnCompleteListener(/* ... */);
推荐阅读
- cgal - 使用 Lloyd 优化和 Mesh_domain::create_labeled_image_mesh_domain 的问题
- python - 如何使用 Python 和 Windows 设置下载 YouTube 视频音频的超时时间
- arrays - 按存储为字符串的日期对数组进行排序
- java - 数组列表中的 Java 对象
- objectbox - 如何使用中间表创建多对多关系
- python - 如何避免 anaconda 在 C 盘中安装文件/包?
- python - 如何在 Lambda 函数中使用存储桶标签对 s3 存储桶 ACL 进行操作
- java - Jax-ws 端点不要求创建包装类
- css - Google Chrome 和 Microsoft Edge 中的字体渲染
- jquery - 标题中的按钮位置有问题