java - 如何在 Firestore 中批量写入后获取更新的文档引用?

标签 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();
                }

            }
        });

最佳答案

根据您的评论:

i mean after commiting i need the values inside that Document

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

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

关于java - 如何在 Firestore 中批量写入后获取更新的文档引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56685812/

相关文章:

android - 从 Eclipse 恢复已删除的 Git 存储库

android - 将 firebase_messaging 插件添加到 Flutter 项目

java - 如何从 scala (casbah) 访问 mongoDB 中的二进制数据

Java匿名对象和垃圾收集第-1部分

Android TabLayout fragment -垂直滚动

java - Android - 未检测到 ACTION_UP

ios - 在 UITableView 数组中保存 Firebase 结构 [Swift 4]

android - 错误 : cannot find symbol method getDownloadUrl() of type com. google.firebase.storage.UploadTask.TaskSnapshot

java - 获取数组中字符串的索引,并在另一个数组中删除这些索引处的字符串

java - 泛型、对象、比较