Flutter 从Firestore接收数据时有轻微延迟-有没有加快或平滑的方法?
我有一个Flitter应用程序,它使用Firestore作为数据库。当用户没有数据时,将显示带有消息的页面 “添加一些产品” 如果用户有数据,他们会看到他们的产品列表 我遇到的问题是,当我从该选项卡中单击并返回到该选项卡时,会在几分之一秒(约0.3秒)的时间内显示“添加一些产品”的消息,然后检索数据并显示产品列表Flutter 从Firestore接收数据时有轻微延迟-有没有加快或平滑的方法?,flutter,google-cloud-firestore,delay,Flutter,Google Cloud Firestore,Delay,我有一个Flitter应用程序,它使用Firestore作为数据库。当用户没有数据时,将显示带有消息的页面 “添加一些产品” 如果用户有数据,他们会看到他们的产品列表 我遇到的问题是,当我从该选项卡中单击并返回到该选项卡时,会在几分之一秒(约0.3秒)的时间内显示“添加一些产品”的消息,然后检索数据并显示产品列表 我正在寻找一种方法来消除这种延迟,或者只是使转换更平滑。您无法实际消除Firestore查询的延迟。查询数据库总是要花费一些未知的时间,时间的多少主要取决于客户端和服务器之间网络连接的
我正在寻找一种方法来消除这种延迟,或者只是使转换更平滑。您无法实际消除Firestore查询的延迟。查询数据库总是要花费一些未知的时间,时间的多少主要取决于客户端和服务器之间网络连接的质量。如果您依赖于缓存结果,则从磁盘加载文档仍然需要时间
您的应用程序最初应该显示某种加载指示器(甚至什么也不显示),直到查询生成要执行的数据。如果您希望能够毫不延迟地返回屏幕,则必须将查询结果缓存在内存中以供重用。我不知道如何加快。。。因为查询数据的返回取决于很多因素,包括互联网速度。因此,其他用户可能只会获得超过0.3秒的时间。最好使用
FutureBuilder
进行期货交易
例如:
像这样,
FutureBuilder(
future: Firestore.instance.collection('collectionName').document(docId).get(),
builder: (BuildContext context, DocumentSnapshot snapshot){
if(!snapshot.exits){
return Text('Add items'); //yourWidget to add items
}if else (snapshot.exits){
return YourWidget(); //your widget which shows the items
}else{
return CircularProgressIndicator();
}
}
)
好的,谢谢,我将研究缓存,现在只显示一个加载符号