首页 > 解决方案 > Firestore 监听器

问题描述

我有多个表,可以从中获取有关应用程序启动的数据。我使用 get() 并且获取多个表非常慢,所以我最终得到了非常慢的应用程序启动。大约 5 秒(难以置信)。

所以我的想法是只获取一次所有数据,然后为 Firestore 更改附加监听器。我尝试使用 addSnapshotListener 但它首先获取数据,然后我再次花费 5 秒来获取所有不必要的数据。

有没有办法只附加监听器而不获取数据?

一般来说,我需要一些聪明的方法来解决这个问题。定期监视更新和同步不是自定义服务器。

有任何想法吗?

查询非常简单,这是一个示例:

FirebaseFirestore.getInstance().collection("someData").get().addOnCompleteListener(task -> {
        if (task.isSuccessful()) {
            for (final QueryDocumentSnapshot document : task.getResult()) {
                //extract data
            }
        } else {
            Log.w(TAG, "Error getting documents.", task.getException());
        }
    });

表最多可以有 10 个字段,不能更多。我有 8 个表,所以最多 80 个字段。另外,我在 Firestore 上没有太多数据,在 onSnapshotListener 中收到了大约 200 个结果。使用一年后能用多久?很长。

网络很好,100MB,负载最小。

标签: androidgoogle-cloud-firestore

解决方案


推荐阅读