繁体   English   中英

Flutter & Firebase:使用 StreamBuilder 减少读取次数

[英]Flutter & Firebase: reduce the number of reads with StreamBuilder

我正在使用 Firebase Firestore 构建排名页面,如下所示:

StreamBuilder<QuerySnapshot>(
                        stream: FirebaseFirestore.instance
                            .collection('user')
                            .orderBy('total_score', descending: true)
                            .limit(3)
                            .snapshots(includeMetadataChanges: false),
                        builder:...

一切工作几乎完美,但我只有一个问题:读数数量太高,我试图将其限制为 3,但它仍然达到一个非常高的数字,并且只有 1 个用户。

对于其他页面,我使用缓存数据,这减少了读取次数。

这在 StreamBuilder 中可能吗? 有什么建议吗?

对于StatefulWidget stream api 将在每次 state 更改时调用。 为 stream 创建一个 state 变量,

  late final myStream = FirebaseFirestore.instance
      .collection('user')
      .orderBy('total_score', descending: true)
      .limit(3)
      .snapshots(includeMetadataChanges: false);
  @override
  Widget build(BuildContext context) {

并使用它

StreamBuilder<QuerySnapshot>(
     stream: myStream  

您可以检查修复常见的 FutureBuilder 和 StreamBuilder 问题

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM