如何在Firebase中使用writeToFile来处理超过最大的大小?

时间:2016-09-15 17:44:13

标签: ios swift image firebase-storage

我需要有关从Firebase数据库加载图像的帮助。我已将2张图片上传到firebase。当我想加载图像。出现此错误

  Attempeted to download object with size of 1050168 bytes, which exceeds the maximum size of 1048576 bytes. Consider raising the maximum download size, or using [FIRStorageReference writeToFile:]

然而,有时我可以加载2张图片,有时它会卡住。

我是Swift和Firebase的新手。

 func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {

    storageRef = FIRStorage.storage().referenceForURL(toDoList[indexPath.row].imageName)
    let storageRef1 = FIRStorage.storage().referenceForURL(toDoList[indexPath.row].secondPhoto)
    let itemSelected = toDoList[indexPath.row]
    storageRef.dataWithMaxSize(1 * 1024 * 1024) { (data, error) in
        if error == nil
        {
            dispatch_async(dispatch_get_main_queue(), {
                if let data = data
                {
                    storageRef1.dataWithMaxSize(1 * 1024 * 1024) { (data1, error) in

                        if error == nil
                        {
                            dispatch_async(dispatch_get_main_queue(), {
                                if let data1 = data1
                                {
                                    let detailVC:DetailViewController = self.storyboard?.instantiateViewControllerWithIdentifier("DetailViewController") as! DetailViewController
                                    print(itemSelected.eventID)
                                    detailVC.eventIDfromDetail = itemSelected.eventID
                                    detailVC.titleEvent = itemSelected.title
                                    detailVC.staffEvent = itemSelected.staff
                                    detailVC.locationEvent = itemSelected.location
                                    detailVC.startEvent = itemSelected.starts
                                    detailVC.endEvent = itemSelected.ends
                                    detailVC.repeatEvent = itemSelected.rpeat
                                    detailVC.imageDetail = UIImage(data: data)!
                                    detailVC.descriptionDetail = itemSelected.description
                                    detailVC.secondPhotoEvent = UIImage(data: data1)!
                                    detailVC.key = itemSelected.key
                                    detailVC.isFinish = itemSelected.isCompleted
                                    self.presentViewController(detailVC, animated: true, completion: nil)
                                }
                            })
                        }
                        else
                        {
                            print(error!.localizedDescription)
                        }

                    }}
            })
        }
        else
        {
            print(error!.localizedDescription)
        }

    }
}

1 个答案:

答案 0 :(得分:0)

看起来您需要提升dataWithMaxSize。根据Firebase文档,请注意,您不能下载超出设备内存容量的文件,否则应用程序将崩溃。指向Firebase文档here的链接。