【问题标题】:Download Images from Firebase/Storage with regards to "Last modified"从 Firebase/Storage 下载关于“上次修改时间”的图片
【发布时间】:2017-01-28 11:19:15
【问题描述】:

我想从我的 Firebase/Storage 中下载关于上传时间的图片。 这意味着,最后上传的图片将是我的新闻源中的第一张图片(有点像 instagram)。

我怎么能写出这样的代码? 我真的不知道从哪里开始,我是制作一个 ImageArray,还是必须定义每个 UIImageView? 我找不到 Firebase 提供的有关此主题的帮助。

感谢您的帮助。 谢谢!

【问题讨论】:

  • 谢谢,但正如我所说,我正在使用 Firebase-Storage。我现在是否集成 Firebase/数据库来显示图像?
  • 您必须将这些图片链接保存在某个地方?保存帖子中的链接.. 或找出解决方法,,,:) 快乐编码
  • 您好 Dravidian,我正在尝试实现您的代码。谢谢你。我只有一个小问题。 “ func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {} 在我写成的这一行中!customTableViewCell; 它给了我一个错误说:“使用未声明的标识符'customTableViewCell'” - 帮助赞赏:)

标签: ios swift firebase storage firebase-storage


【解决方案1】:

我们强烈建议同时使用 Firebase 存储和 Firebase 实时数据库来完成此任务。以下是类似内容的完整示例:

共享:

// Firebase services
var database: FIRDatabase!
var storage: FIRStorage!
...
// Initialize Database, Auth, Storage
database = FIRDatabase.database()
storage = FIRStorage.storage()
...
// Initialize an array for your pictures
var picArray: [UIImage]()

上传:

let fileData = NSData() // get data...
let storageRef = storage.reference().child("myFiles/myFile")
storageRef.putData(fileData).observeStatus(.Success) { (snapshot) in
  // When the image has successfully uploaded, we get it's download URL
  let downloadURL = snapshot.metadata?.downloadURL()?.absoluteString
  // Write the download URL to the Realtime Database
  let dbRef = database.reference().child("myFiles/myFile")
  dbRef.setValue(downloadURL)
}

下载:

let dbRef = database.reference().child("myFiles")
dbRef.observeEventType(.ChildAdded, withBlock: { (snapshot) in
  // Get download URL from snapshot
  let downloadURL = snapshot.value() as! String
  // Create a storage reference from the URL
  let storageRef = storage.referenceFromURL(downloadURL)
  // Download the data, assuming a max size of 1MB (you can change this as necessary)
  storageRef.dataWithMaxSize(1 * 1024 * 1024) { (data, error) -> Void in
    // Create a UIImage, add it to the array
    let pic = UIImage(data: data)
    picArray.append(pic)
  })
})

此时,您可以简单地使用picArray 中的图像将它们显示在tableView 中。您甚至可以使用 Firebase 数据库查询来查询按文件时间戳或其他信息排序的查询(您需要在将 URL 写入数据库时​​写入)。

有关详细信息,请参阅Zero to App: Develop with Firebase,它是associated source code,了解如何执行此操作的实际示例。

【讨论】:

    猜你喜欢
    • 2016-11-03
    • 2017-04-29
    • 2015-09-11
    • 2019-10-04
    • 2021-09-10
    • 1970-01-01
    • 2020-10-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多