Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/sharepoint/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 从Firestore接收数据时有轻微延迟-有没有加快或平滑的方法?_Flutter_Google Cloud Firestore_Delay - Fatal编程技术网

Flutter 从Firestore接收数据时有轻微延迟-有没有加快或平滑的方法?

Flutter 从Firestore接收数据时有轻微延迟-有没有加快或平滑的方法?,flutter,google-cloud-firestore,delay,Flutter,Google Cloud Firestore,Delay,我有一个Flitter应用程序,它使用Firestore作为数据库。当用户没有数据时,将显示带有消息的页面 “添加一些产品” 如果用户有数据,他们会看到他们的产品列表 我遇到的问题是,当我从该选项卡中单击并返回到该选项卡时,会在几分之一秒(约0.3秒)的时间内显示“添加一些产品”的消息,然后检索数据并显示产品列表 我正在寻找一种方法来消除这种延迟,或者只是使转换更平滑。您无法实际消除Firestore查询的延迟。查询数据库总是要花费一些未知的时间,时间的多少主要取决于客户端和服务器之间网络连接的

我有一个Flitter应用程序,它使用Firestore作为数据库。当用户没有数据时,将显示带有消息的页面

“添加一些产品”

如果用户有数据,他们会看到他们的产品列表

我遇到的问题是,当我从该选项卡中单击并返回到该选项卡时,会在几分之一秒(约0.3秒)的时间内显示“添加一些产品”的消息,然后检索数据并显示产品列表


我正在寻找一种方法来消除这种延迟,或者只是使转换更平滑。

您无法实际消除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();
  }
 }
)

好的,谢谢,我将研究缓存,现在只显示一个加载符号