Ios 从firebase存储下载文件名
正如我在文档中所读到的,我可以访问firebase存储中的单个url,如下所示:Ios 从firebase存储下载文件名,ios,swift,firebase,firebase-storage,Ios,Swift,Firebase,Firebase Storage,正如我在文档中所读到的,我可以访问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 { // Ha
`// 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'
} }`
但是,我在那里有很多文件,所以我怎么能跳过直接路径,而是迭代给定目录中的所有文件呢
谢谢你的提示。下载URL一次只接收一个字符串。如果您想向我这样的tableview显示文件夹中的所有文件,下面是 完整代码:
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!
}
DownloadURL一次只接受一个字符串。如果您想向我这样的tableview显示文件夹中的所有文件,下面是 完整代码:
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!
}
可能的副本可能的副本请花点时间通读中的。堆栈溢出的格式与其他站点不同。请花点时间阅读中的。堆栈溢出上的格式设置与其他站点不同。