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 次 |
| 最近记录: |