在查询 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/