猿问

如何在FiRESTORE中计算集合下的文档数?

如何在FiRESTORE中计算集合下的文档数?

我想让收藏参考在CloudFiRESTORE上存在的计数,我尝试使用:

FirebaseFirestore db = FirebaseFirestore.getInstance();
    final CollectionReference postsCollection = db.collection("Posts");

    final TaskCompletionSource<Integer> source = new TaskCompletionSource<>();
    new Thread(new Runnable() {
        @Override
        public void run() {
            int fromWhereToStart = postsCollection.get().getResult().size();
            source.setResult(fromWhereToStart);
        }
    }).start();

    Task<Integer> task = source.getTask();
    task.addOnCompleteListener(new OnCompleteListener<Integer>() {
        @Override
        public void onComplete(@NonNull Task<Integer> task) {
            Log.e("Z_fromWhereToStart", "= " + task.getResult());
        }
    });

但不幸的是,我得到了:

java.lang.IllegalStateException: Task is not yet complete

是否有另一种方法来获取另一种方法的计数来修复IllegalStateException?


收到一只叮咚
浏览 630回答 2
2回答

一只甜甜圈

内部onCompelete()检查if (task.isSuccessful())在使用日志之前。还可以迭代文档,如for (DocumentSnapshot document : task.getResult()){ yourCounter++;}增量counter每次迭代以知道集合中有多少文档"Posts"可得
随时随地看视频慕课网APP

相关分类

Android
Java
我要回答