java - 在查询 firestore 时使用 SnapshotParser 是否是一项昂贵的操作?

标签 java android performance firebase google-cloud-firestore

在查询 Firestore 时使用 SnapshotParser 是否是读取操作方面的昂贵操作?

我们正在我们的应用中构建查询,如下所示:

  options = new FirestoreRecyclerOptions.Builder<Item>()
                    .setQuery(query, new SnapshotParser<Item>() {
                        @NonNull
                        @Override
                        public Item parseSnapshot(@NonNull DocumentSnapshot snapshot) {
                            Item item = snapshot.toObject(Item.class);
                            item.setId(snapshot.getId());
                            return item;
                        }
                    })
                    .setLifecycleOwner(this)

那么当从服务器读取数据时,SnapshotParser 会进行额外的读取操作(或再次访问服务器)还是使用已读取的数据进行解析?

使用或不使用 SnapshotParser 的操作(就服务器命中率而言)是否相同?

请解释,如果有遗漏,请告诉我?抱歉英语不好。

最佳答案

来自Firebsase-UI的官方文档图书馆:

If you need to customize how your model class is parsed, you can use a custom SnapshotParser.

因此,如果您需要自定义模型类,这并不意味着您要创建额外的读取操作。 parseSnapshot() 方法使用 DocumentSnapshot 对象作为参数,该对象包含您从数据库中获取的数据集,您已经为读取操作付费。如果查询返回数据,就会发生这种情况。如果您的查询未返回任何数据,您仍需付费,但只需支付一次读取操作费用。

关于java - 在查询 firestore 时使用 SnapshotParser 是否是一项昂贵的操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52041870/

相关文章:

MongoDB 模式设计适用于 Tinder 之类的应用程序、嵌入式文档还是单独的集合?

java - 可以选择但不能写入/更新到 SQL Server

java - 这段代码在java中运行后没有显示输出?

android - 在android中实现选项卡的最佳方法?

c++ - std::cout 会影响计时器吗?

performance - 运行 MSTest 测试的性能分析

java - 在 Spring Data 中缓存表

java - 试图定位泄漏点! anon 对 pmap 意味着什么?

android - 如何调试Android ANR?

在 Mac OS X 10.6.8 上构建 android 2.1 期间出现 java.lang.OutOfMemoryError