gpt4 book ai didi

swift - 如何从 firebase 获取图片下载链接

转载 作者:行者123 更新时间:2023-11-30 11:20:04 24 4
gpt4 key购买 nike

我正在尝试获取名为 a.jpg 的图像的下载链接它位于名为 images 的文件夹中在firebase存储中我正在尝试这个:

    let store = FIRStorage.storage()
let storeRef = store.reference()
let reference = storeRef.child("images").child("a.jpg")
reference.downloadURL { url, error in
if let error = error {
print(error)
}
else {
print(url!)
}
}

调试中 url给出了这个:

expression produced error: error: Execution was interrupted, reason: EXC_BAD_ACCESS (code=1, address=0x20). The process has been returned to the state before expression evaluation.

最佳答案

创建引用

要先下载文件,请为要下载的文件创建 Cloud Storage 引用。

您可以通过将子路径附加到存储根目录来创建引用,也可以从引用 Cloud Storage 中的对象的现有 gs://或 https://URL 创建引用。

// Create a reference with an initial file path and name
let pathReference = storage.reference(withPath: "images/stars.jpg")

// Create a reference from a Google Cloud Storage URI
let gsReference = storage.reference(forURL: "gs://<your-firebase-storage-bucket>/images/stars.jpg")

// Create a reference from an HTTPS URL
// Note that in the URL, characters are URL escaped!
let httpsReference = storage.reference(forURL: "https://firebasestorage.googleapis.com/b/bucket/o/images%20stars.jpg")

下载文件

获得引用后,您可以通过三种方式从 Cloud Storage 下载文件:
  • 下载到内存中的NSData
  • 下载到代表设备上文件的 NSURL
  • 在线生成代表文件的NSURL

  • 内存中下载

    使用 dataWithMaxSize:completion: 方法将文件下载到内存中的 NSData 对象。这是快速下载文件的最简单方法,但它必须将文件的全部内容加载到内存中。如果您请求的文件大于应用程序的可用内存,您的应用程序将崩溃。为了防止内存问题,请确保将最大大小设置为您知道您的应用可以处理的大小,或使用其他下载方法。
    // Create a reference to the file you want to download
    let islandRef = storageRef.child("images/island.jpg")

    // Download in memory with a maximum allowed size of 1MB (1 * 1024 * 1024 bytes)
    islandRef.getData(maxSize: 1 * 1024 * 1024) { data, error in
    if let error = error {
    // Uh-oh, an error occurred!
    } else {
    // Data for "images/island.jpg" is returned
    let image = UIImage(data: data!)
    }
    }

    请点击以下链接了解更多详情

    https://firebase.google.com/docs/storage/ios/download-files

    关于swift - 如何从 firebase 获取图片下载链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51354273/

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