【问题标题】:Firebase android query performance issueFirebase android查询性能问题
【发布时间】:2017-03-31 10:51:51
【问题描述】:

我过滤了查询,它返回大约 220 个项目,每个项目有 8 个字段,每个字段没有子节点。这不是一小部分数据,但绝对不是大数据。 在下面的图片中会发生以下情况:

  1. Sec 25 - 用户点击加载数据,创建事件监听器
  2. 第 31 节 - 数据已完全从 Firebase 数据库加载
  3. 1 分钟 47 - 调用 onDataChange 并显示数据

我在调试器中看到了一些顶级进程:FirebaseDatabaseWorker。看起来它做了一些加载的数据处理。但是 30%CPU 的 1 分钟?可以优化吗?

谢谢!

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

【问题讨论】:

  • 更多信息:从“query.addListener”行到“public void onDataChange”行之间发生了 1 分钟的间隔。

标签: performance android-studio firebase delay instant-run


【解决方案1】:

在 Android Studio 中禁用 Instant Run 使得调用 onDataChange 的时间从 1 分钟缩短到大约 5 秒。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-11-18
    • 1970-01-01
    • 2013-02-18
    • 2013-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多