java—当涉及firestore中的定价时,文档查询是如何工作的?

bttbmeg0  于 2021-08-25  发布在  Java
关注(0)|答案(1)|浏览(260)

假设我在firestore中有一个集合,其中存储了我应用程序中所有用户的“故事”,并且假设我在其中保存了1000个故事,但我希望每个用户在单击某个按钮时只检索他/她自己的故事(而不是所有故事)。实际上,我是通过在我的应用程序中使用此代码来实现的

db.collection("stories")
        .whereEqualTo("userID", uidOfCurrentUser)
        .get()
        .addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
            @Override
            public void onComplete(@NonNull Task<QuerySnapshot> task) {
                if (task.isSuccessful()) {
                    for (QueryDocumentSnapshot document : task.getResult()) {
                        Log.d(TAG, document.getId() + " => " + document.getData());
                    }
                } else {
                    Log.d(TAG, "Error getting documents: ", task.getException());
                }
            }
        });

我关心的是:FielBASE会把这个循环看作每个文档的读取吗?换句话说,每次用户点击该按钮,他们会向我收取1000次阅读费吗如果是这样的话,那就太可怕了)
假设一个用户在这1000个故事中只有2个文档,他们会将其计算为2读还是1000读?处理这种情况的最佳解决方案是什么?

s5a0g9ez

s5a0g9ez1#

当涉及firestore时,您将只对接收或更改/删除的数据收费。数据库中有多少并不重要。
如果数据库中有1000个故事,但 query 我只会给你2块钱,你只会为这2块钱付费。
你可以在这里了解更多。

您还应该检查您的查询是否需要在自动查询之外添加creating和index。你可以在这里了解更多。

相关问题