Cro*_*ile 5 google-cloud-storage typescript react-native firebase-storage react-native-firebase
我在后端数据库中存储了一些图像/视频的 Firebase 存储路径,移动客户端使用这些路径在我的视图需要时获取下载 URL:
import {firebase} from '@react-native-firebase/storage';
// e.g. 'images/stars.jpg'
const getDownloadUrlForFilePath = (filePath: string | null): Promise<string> => {
if (filePath === null) {
throw 'Path is null!';
}
return getDownloadUrlForRef(firebase.storage().ref(filePath));
};
const getDownloadUrlForRef = (ref): Promise<string> => {
return ref.getDownloadURL();
};
Run Code Online (Sandbox Code Playgroud)
问题是我在很多地方都需要相同的图像。因此,我经常打电话getDownloadURL()
来检索相同的下载网址。这会导致手机对我调试网络流量时出现的同一资源发出多个 http 请求。
在我当前的实现中,我没有将检索到的下载 URL 存储在移动客户端中的任何位置。
我想找到一种方法让应用程序只为同一路径获取一次下载 URL 并缓存它。Firebase SDK 是否支持此功能?
下载 URL 从生成的那一刻起一直有效,直到您撤销它(从 Firebase 控制台)。因此,存储它并重新使用它确实是安全的。
事实上,大多数通过 Firebase 使用 Cloud Storage 的应用程序会在上传图像后立即生成下载 URL,然后将下载 URL 以及有关图像的元数据存储在数据库中。
你通常会:
如果您只存储下载 URL(与许多应用程序一样),则在第二种情况下,您将通过调用Storage.refFromUrl()
方法将该下载 URL 映射回相应的路径。
归档时间: |
|
查看次数: |
976 次 |
最近记录: |