gpt4 book ai didi

firebase - 查询取决于 Firestore 中的数据集

转载 作者:行者123 更新时间:2023-12-04 16:08:43 28 4
gpt4 key购买 nike

最近我从 firebase 实时数据库迁移到 firebase firestore,因为它说查询速度取决于从集合中检索的数据集的大小(文档数),而不是集合中的文档数。我检查了集合 100、5000 和 10000 中不同数量的文档,我在一个查询中检索了 20 个文档。我看到的是,当我从集合中的 100、5000 和 10000 个文档移动时,查询的结果时间增加了。为什么会这样?
是因为 firestore 处于测试阶段吗?

在 android 上查询(包含 21000 个文档的集合)

   collectionReference= FirebaseFirestore.getInstance().collection("_countries").document("+91").collection("_classes-exams").document(String.valueOf(mItem)).collection("_profiles").document(mOtherUserUid==null?uid:mOtherUserUid).collection("user_data");


collectionReference.document("_content").collection(articlesOrQuestions)

.orderBy("mTimeStampAsDate", Query.Direction.DESCENDING).limit(20).get().addOnCompleteListener(mCompleteListener)

.addOnFailureListener(new OnFailureListener() {

@Override

public void onFailure(@NonNull Exception e) {

Toast.makeText(getContext(), e.getMessage(), Toast.LENGTH_LONG).show();

}

});

查询上述合集时android监视器的图片引用: /image/QZaVX.jpg

通过查看堆,您可以看到查询花费了将近一分钟(一分钟后内存没有太大变化并保持不变,一分钟后网络部分突然出现峰值,您可以推断出调用了 onComplete)。调用“get()”函数和“onComplete”回调之间发生了什么。查询小型集合时不会发生这种情况。为什么网络上的查询在 android 上很快但很慢?
jsbin链接: http://jsbin.com/fusoxoviwa/1/edit?html,css,js,console,output

最佳答案

您是否从现在正在从中加载文档子集的同一个 Android 客户端编写这些集合?如果是这样,那就说明了。

在这种情况下,客户端缓存将包含有关所有文档的信息,并且您的应用程序正在花时间浏览这些信息。

如果您尝试使用“干净的客户端”,它不会缓存任何信息,它应该只花时间处理客户端请求(或之前请求过)的文档。

您目前看到的行为应该会在 Firestore 退出测试版之前得到改善,因为索引将变得更加高效,而且还因为它会获得某种形式的 GC。

关于firebase - 查询取决于 Firestore 中的数据集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48625357/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com