小编Var*_*run的帖子

Flutter:Streambuilder 导致 Firestore 读取过多

我正在尝试构建一个简单的报价 Flutter 应用程序,在其中显示报价列​​表并允许用户“喜欢”报价。为此,我正在使用 Streambuilder。我的问题是 Firestore 使用仪表板显示的读取次数非常多(每个用户几乎 300 次),即使我最多有 50 个引号。我有一种预感,我的代码中的某些内容导致 Streambuilder 多次触发(可能用户“喜欢”引用),而且 Streambuilder 正在加载所有引用,而不是仅加载用户视口中的引用。任何有关如何解决此问题以减少读取次数的帮助将不胜感激。

import 'dart:convert';
import 'dart:math';

import 'package:flutter/material.dart';
import 'package:positivoapp/utilities.dart';
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:share/share.dart';


class QuotesScreen extends StatefulWidget {
  @override
  QuotesScreenLayout createState() => QuotesScreenLayout();
}

class QuotesScreenLayout extends State<QuotesScreen> {
  List<String> quoteLikeList = new List<String>();

  // Get Goals from SharedPrefs
  @override
  void initState() {
    super.initState();
    getQuoteLikeList();
  }

  Future getQuoteLikeList() async {
    if (Globals.globalSharedPreferences.getString('quoteLikeList') == null) {
      print("No quotes liked yet");
      return;
    }

    String quoteLikeListString =
    Globals.globalSharedPreferences.getString('quoteLikeList');
    quoteLikeList = …
Run Code Online (Sandbox Code Playgroud)

flutter google-cloud-firestore stream-builder

8
推荐指数
1
解决办法
1360
查看次数