【问题标题】:Downloading file names from firebase storage从 Firebase 存储下载文件名
【发布时间】:2023-04-01 15:38:01
【问题描述】:

正如我在文档中所读到的,我可以像这样访问 firebase 存储中的单个 url:

`// Create a reference to the file you want to download 
let starsRef = storageRef.child("images/stars.jpg") 
// Fetch the download URL starsRef.downloadURL { url, error in 
   if let error = error { 
   // Handle any errors } 
   else { 
   // Get the download URL for 'images/stars.jpg' 
} }` 

但是,我那里有很多文件,所以我如何跳过直接路径,而是遍历给定目录中的所有文件?

感谢您的提示。

【问题讨论】:

标签: ios swift firebase firebase-storage


【解决方案1】:

DownloadURL 一次接收一个字符串。如果您想将文件夹中的所有文件显示到像我这样的表格视图,这里是 完整代码:

   import UIKit import Firebase

我的第一个视图控制器-

   class FolderList: UIViewController {
       var folderList: [StorageReference]?
        lazy var storage = Storage.storage()

       @IBOutlet weak var tableView : UITableView!

       override func viewDidLoad() {
           super.viewDidLoad()
   self.storage.reference().child("TestFolder").listAll(completion: {
   (result,error) in
               print("result is \(result)")
               self.folderList = result.items
               DispatchQueue.main.async {
                   self.tableView.reloadData()
               }
           })
       } }
   extension FolderList : UITableViewDataSource {
       func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
           return folderList?.count ?? 0
       }

       func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
           guard let cell = tableView.dequeueReusableCell(withIdentifier: "FolderListCell", for:
   indexPath) as? FolderListCell else {return UITableViewCell()}
           cell.itemName.text = folderList?[indexPath.row].name
           return cell
       }

       func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
           return 64.0
       } }

   extension FolderList : UITableViewDelegate {
       func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
           let storyBoard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
           guard let downloadVC = storyBoard.instantiateViewController(withIdentifier:
   "DownloadedItemView") as? DownloadedItemView else {
               return
           }
           downloadVC.storageRef = folderList?[indexPath.row]
           self.navigationController?.pushViewController(downloadVC, animated: true)
       } 
}

你每个细胞:

   class FolderListCell: UITableViewCell {

       @IBOutlet weak var itemName : UILabel!

   }

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2021-04-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-20
  • 2019-12-10
相关资源
最近更新 更多