首页 > 解决方案 > 如何将 pdf 文件从 Firebase 保存到文档目录

问题描述

您好我正在尝试将文件 test.pdf 从 firebase 存储保存到我的应用程序的文档目录,但不幸的是无法正常工作。

这里我的内容视图带有一个按钮来运行任务:

import SwiftUI
import Firebase
import WebKit


struct ContentView: View {

    var body: some View {
        VStack {

            Button(action: {
               let storage = Storage.storage()
                let storageRef = storage.reference()
                let islandRef = storageRef.child("test.pdf")
                // Create local filesystem URL
                let localURL = URL(string: self.cartellaDocuments())!
                
                let downloadTask = islandRef.write(toFile: localURL) { (url, err) in
                    if err != nil {
                     debugPrint(" // Uh-oh, an error occurred!")
                    } else {
                        debugPrint("\(String(describing: url))")
                    }
                }
            }) {
                Text("esegui")
            }
        }
    }

    func cartellaDocuments() -> String {
        let paths = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)
        debugPrint(paths[0])
        return paths[0]
    }
    
       
}

我在firebase中的存储:

Firebase 存储

我尝试遵循 google firebase 指令,但收到以下警告:

我该如何解决这个问题。

谢谢您的帮助

标签: swiftfirebaseswiftuifirebase-storage

解决方案


你可以试试这个:

    let pdfView = PDFView()
    pdfView.translatesAutoresizingMaskIntoConstraints = false
    self.view.addSubview(pdfView)

    pdfView.leadingAnchor.constraint(equalTo: self.view.safeAreaLayoutGuide.leadingAnchor).isActive = true
    pdfView.trailingAnchor.constraint(equalTo: self.view.safeAreaLayoutGuide.trailingAnchor).isActive = true
    pdfView.topAnchor.constraint(equalTo: self.view.safeAreaLayoutGuide.topAnchor).isActive = true
    pdfView.bottomAnchor.constraint(equalTo: self.view.safeAreaLayoutGuide.bottomAnchor).isActive = true
    

    if let document = PDFDocument(url: URL.init(string: "https://your storage download url")!) {
        pdfView.document = document
    }

推荐阅读