gpt4 book ai didi

Firebase 存储 : Using Download Url Instead of Storage Ref

转载 作者:行者123 更新时间:2023-12-01 00:41:02 25 4
gpt4 key购买 nike

我有一个 iOS使用 Firebase Storage 的应用程序用于存储图像。上传图片后,我保存它的 storage reference在我的Firebase Database .当应用程序加载时,它会获取各种 storage references来自数据库并使用 FirebaseUI方法来显示它们的相应图像,如下所示:

let storageRef = Storage.storage().reference(forURL: imageUrl)
imageView.sd_setImage(with: storageRef, placeholderImage: nil)

这很好用......但它很慢。

在寻找加速的解决方案时 Firebase Storage我发现这篇文章暗示使用图像的公共(public)链接,即。它的 download url , 而不是它的 storage reference : https://stackoverflow.com/a/44362350/5225013

我的理解是这与 public urls 有关。前面有一个 CDN,而 storage references不。
download url可以使用以下代码在应用程序中检索:
let storageRef = Storage.storage().reference(forURL: imageUrl)
storageRef.downloadURL { (downloadUrl, error) in

if let downloadUrl = downloadUrl {
// do something with downloadUrl
}
}

但是,以这种方式获取它对我的目的来说毫无用处,因为在显示图像之前进行异步调用需要额外的时间......

我一直在想写一个云函数来保存每个图像的 download url与其对应的 storage reference在数据库中,然后使用它在应用程序中显示图像。这些图片不是个人的,也不包含敏感内容,所以我不介意它们是否是公开的。我主要想知道;如果我这样做,有什么我应该担心的吗?这是不常见的做法是有原因的吗?

最佳答案

你不需要“做”任何事情。
对于存储中的公共(public)文件(即具有 allow read; 安全规则的文件),获取它们的 URL 是:
https://firebasestorage.googleapis.com/v0/b/(project id).appspot.com/o/(storage path)?alt=media
我在我的应用程序中所做的是存储存储路径,然后使用简单的串联构造公共(public)下载 URL。
奇迹般有效。
请注意,存储路径中的某些字符(如空格和斜杠)必须进行转义。在 JavaScript 中,您可以使用 encodeURIComponent() .
另请注意,强制执行 App Check for Storage 打破了这一点。

关于Firebase 存储 : Using Download Url Instead of Storage Ref,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58443123/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com