使用Firestore进行颤振的更好方法,无需读取

时间:2020-07-12 15:15:52

标签: firebase flutter google-cloud-firestore

嗨,我是Cloud Firestore的新手。我正在使用内部带有ListView.builder的StreamBuilder从Firestore获取文档。 我想知道哪种方法更好。

  1. 在ListView.builder中按索引获取所有文档索引
ListView.builder(itemBuilder: (context, index){
                  final time = snapshot.data.documents[index].data['time'];
                  final date = snapshot.data.documents[index].data['date'];
                  final location = snapshot.data.documents[index].data['location'];
                  final eventName = snapshot.data.documents[index].data['event_name'];
                  return UpcomingEventCard(
                    time: time,
                    date: date,
                    location: location,
                    eventName: eventName,
                  );
                },itemCount: snapshot.data.documents.length,
                )
  1. 首先获取所有文档,然后使用ListView.bulder中的列表,例如这样
final eventSnapshots = snapshot.data.documents;
ListView.builder(itemBuilder: (context, index){
                  final time = eventSnapshots[index].data['time'];
                  final date = eventSnapshots[index].data['date'];
                  final location = eventSnapshots[index].data['location'];
                  final eventName = eventSnapshots[index].data['event_name'];
                  return UpcomingEventCard(
                    time: time,
                    date: date,
                    location: location,
                    eventName: eventName,
                  );
                },itemCount: snapshot.data.documents.length,
                )

从逻辑的角度来看,两者看起来都是一样的(也许我想得太过分了),但是我担心由于我使用的是免费的Spark计划,因此读取的费用是否比其他读取费用高。 我确实需要将所有文档放入收藏夹中。

1 个答案:

答案 0 :(得分:0)

我确实需要获取馆藏中的所有文档。

如果您需要集合中的所有文档,则每个文档的读取费用为1。从计费的角度来看,这就是您所需要知道的。将查询快照交付给客户端后,您的操作完全由您决定,并且对计费没有影响,因为此时的所有内容都已存储在内存中。选择您更喜欢的那个。