Firebase android 查询性能问题
Firebase android query performance issue
我过滤了查询,其中 returns 大约 220 个项目,每个项目有 8 个字段,每个字段没有子节点。它不是数据的一小部分,但绝对不是大数据。
在下图中发生以下情况:
- 第 25 节 - 用户点击加载数据,创建 eventListener
- 第 31 节 - 数据已完全从 Firebase DB 加载
- 1 分钟 47 - 调用 onDataChange 并显示数据
我在调试器中看到了一些顶级进程:FirebaseDatabaseWorker。看起来它做了一些加载的数据处理。但是 1 分钟 30%CPU?可以优化吗?
谢谢!
final DatabaseReference artRef =
database.getReference("sales/"+store+"/articles");
Query query = artRef.orderByChild("familyId").equalTo(familyId);
query.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot snapshot) {
for (DataSnapshot child : snapshot.getChildren()) {
Article article = child.getValue(Article.class);
article.id = Integer.parseInt(child.getKey());
articles.add(article);
}
adapter.notifyDataSetChanged();
}
在 Android Studio 中禁用 Instant 运行 使调用 onDataChange 的时间从 1 分钟缩短到大约 5 秒。
我过滤了查询,其中 returns 大约 220 个项目,每个项目有 8 个字段,每个字段没有子节点。它不是数据的一小部分,但绝对不是大数据。 在下图中发生以下情况:
- 第 25 节 - 用户点击加载数据,创建 eventListener
- 第 31 节 - 数据已完全从 Firebase DB 加载
- 1 分钟 47 - 调用 onDataChange 并显示数据
我在调试器中看到了一些顶级进程:FirebaseDatabaseWorker。看起来它做了一些加载的数据处理。但是 1 分钟 30%CPU?可以优化吗?
谢谢!
final DatabaseReference artRef =
database.getReference("sales/"+store+"/articles");
Query query = artRef.orderByChild("familyId").equalTo(familyId);
query.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot snapshot) {
for (DataSnapshot child : snapshot.getChildren()) {
Article article = child.getValue(Article.class);
article.id = Integer.parseInt(child.getKey());
articles.add(article);
}
adapter.notifyDataSetChanged();
}
在 Android Studio 中禁用 Instant 运行 使调用 onDataChange 的时间从 1 分钟缩短到大约 5 秒。