我正在构建Flutter应用程序,为此我使用不同大小的相同图像。出于性能方面的考虑,我想根据客户端上的显示尺寸以不同的尺寸获取相同的图像。
为此,我将构建一个系统,使我可以使用云功能在Firebase存储上生成每个上载图像的缩略图,然后从客户端使用这些缩略图。
上载时,用户将收到源图像的公共URL,并且只需将所需的大小附加到URL即可获取特定的缩略图版本(例如https://google.api.com/mybucket/myprofilepicture.png
-> https://google.api.com/mybucket/myprofilepicture@2x.png
)< / p>
但是,firebase云存储使用令牌保护机制(例如https://google.api.com/mybucket/myprofilepicture.png?alt=media&token=09cb2927-4706-4e36-95ae-2515c68b0d6e
)more info here,使得客户端无法预测新上载文件的公共URL。
官方的缩略图生成云功能示例通过将生成的URL保存到Cloud Firestore中来解决此问题,因此,需要从客户端进行另一个调用以获取可用的缩略图。 https://github.com/firebase/functions-samples/tree/master/generate-thumbnail
有没有一种方法可以为缩略图生成可预测的URL,以避免将它们存储在单独的数据库中的开销?