目前,我正試圖從google firebase加載圖片。 加載圖片并在我的應用程式中顯示它們是可行的。 但我發現,圖片的加載速度非常慢。
我需要大約3秒鐘來顯示一個簡單的網路圖片。 我的互聯網有一個良好的連接。
這是我加載圖片的代碼:
我的代碼是這樣的
child: FutureBuilder<dynamic>(
future: loadImages(), // Async work
builder: (BuildContext context, AsyncSnapshot<dynamic> snapshot) {
switch (snapshot.connectionState) {
case ConnectionState.waiting:
return Text('Loading....') 。
default:
if (snapshot.hasError)
return Text('Error: ${snapshot.error}')。)
else
return Image.network(snapshot.data)。
}
},
),
),
),
Future loadImages() async {
參考文獻 ref = FirebaseStorage.instance
.ref()
.child("images/product/product_images/")
.child('productImage_1631118157638_KuymkIGLXUTl0nMw8RENcdEqXUo2') 。
return await ref.getDownloadURL()。
}
這段代碼只是從我的Firebase存盤中顯示一張圖片。
我的問題:
有沒有可能從Firebase存盤中更快地加載圖片,或者說Firebase有一個加載圖片的時間限制? 為什么我的圖片加載如此之慢,而在其他應用程式中卻沒有(DeviantArt)? 你知道我如何解決這個問題嗎?
非常感謝(:
)uj5u.com熱心網友回復:
我在這里回答了類似的問題從FirebaseStorage獲取下載URL和這里Firebase Storage Flutter顯示圖片的加載時間過長
。在您當前的解決方案中,您的代碼必須首先ping存盤桶,驗證安全規則,然后將下載URL回傳給客戶端,然后您可以使用該URL來下載和渲染影像。通過將下載 URL 存盤在您的資料庫中(例如 Firestore 檔案)并直接從那里進行渲染,可以完全消除這一開銷,這也是常見的做法。
你的圖片非常小,所以有效載荷的大小不應該是一個很大的問題。
其他可能導致下載時間過慢的因素是您的存盤桶與最終用戶之間的關系,因此您可能要考慮移動存盤桶的位置,或者使用一個 CDN,該 CDN 可將您的影像托管在靠近您的應用程式用戶所在的地理位置上。
另一個選擇是提前下載并快取您的圖片,這樣您就可以在用戶要求時盡快呈現這些圖片。
其他應用程式之所以能夠更快地呈現其影像,是因為它們綜合使用了壓縮、快取、CDN 以及其他技術。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/326122.html
標籤:

