Firebase 我应该如何从根本上提高颤振应用程序性能?

Firebase 我应该如何从根本上提高颤振应用程序性能?,firebase,flutter,google-cloud-firestore,flutter-layout,Firebase,Flutter,Google Cloud Firestore,Flutter Layout,好吧,这对你来说可能是一本很长的书,但对像我这样的新手来说可能会解决很多问题。 好了,现在直截了当地说,在从firestore加载一堆列表数据并防止应用程序崩溃的同时,我应该如何提高性能呢。 以下是我的经历,我正在开发一个食品配送应用程序,到目前为止,这个应用程序中有大约50家餐厅,但发生的是,许多低成本手机(特别是维梧)没有加载,应用程序崩溃,所以我限制了一次加载的文档数量,但这实际上影响了用户体验,这里有一些竞争对手的速度比我们快得多,我不知道他们使用了什么技术,但他们在没有任何加载时间的情

好吧,这对你来说可能是一本很长的书,但对像我这样的新手来说可能会解决很多问题。 好了,现在直截了当地说,在从firestore加载一堆列表数据并防止应用程序崩溃的同时,我应该如何提高性能呢。
以下是我的经历,我正在开发一个食品配送应用程序,到目前为止,这个应用程序中有大约50家餐厅,但发生的是,许多低成本手机(特别是维梧)没有加载,应用程序崩溃,所以我限制了一次加载的文档数量,但这实际上影响了用户体验,这里有一些竞争对手的速度比我们快得多,我不知道他们使用了什么技术,但他们在没有任何加载时间的情况下立即加载98个餐厅,我也尝试在后台加载数据,但应用程序崩溃了,所以现在我一直在限制文档的数量,但我如何改进?目前,主页包括10张网络图像卡、3张渐变颜色的资产图像堆叠卡和5家餐厅的列表,随着用户向下滚动,这些内容会增加,但加载数据的速度不够快。有人向我建议一种加速的方法吗?或者我必须更改数据库吗?

因此,我认为你的应用程序很慢,因为当应用程序中发生变化时,它会一次又一次地呈现所有小部件,并使应用程序变慢。一些基本的解决办法是:

1-对永不改变的变量使用
const
。(例如:
const Color colorPrimary=Color(0xffaabbcc))

2-使用
Provider
软件包加载和存储数据,以便您可以在任何地方使用数据。此外,它还防止渲染所有小部件。它只呈现使用该数据的小部件。(例如,如果每次都不更改
AppBar
标题,则不希望渲染
AppBar

3-将大部件划分为单独的小部件。它使项目管理变得简单

4-也许你的图像太大,你的应用程序无法快速加载,然后崩溃。把他们的尺寸缩小。(例如:256x256而不是512x512)

5-加载数据时使用延迟加载。也许你的应用程序试图一次加载所有数据,这会使你的应用程序运行缓慢。使用延迟加载,大部分数据在用户向下滚动之前不会加载。(我想你已经在使用它了,但我只是想提一下)


这些都是可能的解决方案。

如果您担心应用程序在发布模式下的性能,您可以缩减应用程序。它使用不同的技术,通过从应用程序中删除未使用的代码(称为收缩)和许多其他技术(如缩短类名和方法的模糊处理)来提高应用程序的效率,您可以查看此链接了解更多信息。

我正在使用所有解决方案,1)在每个可能的小部件上使用Const关键字,2)具有baseview体系结构的提供商,3)我划分并定义了许多可能的小部件,并将它们保存在另一个文件中,4)是的,我正在这样做that@HassanAnsari如果你在调试模式下运行你的应用程序,那么不用担心,在发布模式下它会运行得更快我说的是发布版本我已经删除了未使用的代码,我认为问题可能出在firestore上,因为昨天我更换了googleservices.json,查询速度比以前更快。