2017-04-09 64 views
0

我将图像从选取器保存到firebase。然后我把它们带回到我的桌面视图,但它们从翠鸟非常缓慢地更新。即使从缓存中。如果我的应用程序离线重装,他们仍然需要一段时间才能显现翠鸟Firebase存储缓慢显示图像 - 迅速3

最多可节省到火力地堡存储

func Save(image:UIImage, folderName:String, storeRefString:String,   dbRefString:String) { 
     let ref = FIRDatabase.database().reference(withPath: "Main") 
     let database = FIRDatabase.database() 
     let storage = FIRStorage.storage() 
     let mainScreenItem = MainItem(name: folderName, image: "") 
     let mainItemRef = ref.child(folderName.lowercased()) 
     let storageRef = storage.reference().child(storeRefString) 
     mainItemRef.setValue(mainScreenItem.toAnyObject()) 

     let fileData = UIImagePNGRepresentation(image)! as NSData 

     storageRef.put(fileData as Data).observe(.success) { (snapshot) in 
      let downloadURL = snapshot.metadata?.downloadURL()?.absoluteString 
      let dbRef = database.reference().child(dbRefString) 
      dbRef.setValue(downloadURL) 

     } 
    } 

viewDidLoad中()

override func viewDidLoad() { 
    super.viewDidLoad() 
    maxHeaderHeight = 100 
    minHeaderHeight = 50 
    ref.queryOrdered(byChild: "name").observe(.value, with: { snapshot in 
     var newItems: [MainItem] = [] 
     for item in snapshot.children { 
      let groceryItem = MainItem(snapshot: item as! FIRDataSnapshot) 
      newItems.append(groceryItem) 
     } 
     self.items = newItems 
     self.tableView.reloadData() 

    }) 
} 

的cellForRowAtIndexPath

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 
    let cell = self.tableView.dequeueReusableCell(withIdentifier: "MainTableViewCell") as! MainTableViewCell 
    let item = items[indexPath.row] 
    let url = URL(string: item.image) 
    DispatchQueue.main.async { 
     () -> Void in 
     cell.photoImage?.kf.setImage(with: url) 
    } 
    return cell 
} 

回答