Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.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
对等方之间的Flatter Firebase文件查看/下载_Firebase_Flutter_Dart_Google Cloud Firestore_Chat - Fatal编程技术网

对等方之间的Flatter Firebase文件查看/下载

对等方之间的Flatter Firebase文件查看/下载,firebase,flutter,dart,google-cloud-firestore,chat,Firebase,Flutter,Dart,Google Cloud Firestore,Chat,我正在使用flifter&Firebase开发一个聊天应用程序。我想包括的一个功能是能够发送文件,这是我经过一些研究最终发现的。但我真的很想包括一些东西。例如,我将图像发送给另一个用户,在用户设备中,他应该手动下载图像,然后才能看到图像,然后在我自己的设备上,在我发送完图像后,我应该能够直接查看图像,而无需自己再次下载图像。 如果我能在这方面得到帮助,我将不胜感激。我将简要介绍一下我对该实施的看法 所以 聊天信息的数据模型 希望您的聊天信息有一个合适的数据模型。 我的建议是,您有一个类似于此

我正在使用flifter&Firebase开发一个聊天应用程序。我想包括的一个功能是能够发送文件,这是我经过一些研究最终发现的。但我真的很想包括一些东西。例如,我将图像发送给另一个用户,在用户设备中,他应该手动下载图像,然后才能看到图像,然后在我自己的设备上,在我发送完图像后,我应该能够直接查看图像,而无需自己再次下载图像。
如果我能在这方面得到帮助,我将不胜感激。

我将简要介绍一下我对该实施的看法

所以

  • 聊天信息的数据模型
希望您的聊天信息有一个合适的数据模型。 我的建议是,您有一个类似于此的数据模型

class ChatMessage{
  String uid; 
  String message;
  String imageUrl;  //List<String> imageUrl depending on your use case 
...
}
使用此功能,现在您可以在数据库中存储图像的散列,并将其发送到对等方显示。这将仅显示图像的模糊版本,使用堆栈并添加带有下载图标的
IconButton()
。现在,当单击它时,您可以实现获取下载imageUrl,然后显示它,而不是散列

现在,您可以将此图像存储在localStorage中,然后像WhatsApp那样从该位置获取。你也可以在发送方做同样的事情。这样,您将节省大量的带宽,因为您可以随时从firebase获取图像

  • 底线
使用
BlurHash()
显示模糊图像,下载并在单击时缓存。 从缓存位置在两侧显示图像

class ChatMessage{
  String id; 
  String message;
  String imageUrl;  //List<String> imageUrl depending on your use case
  String hash; 
...
}