从Firebase中检索图片

Firebase数据库结构的扩展

将图片,姓名和电话上传到Firebase数据库和Firebase存储后。

我无法从Firebase检索图片到表格视图。

这是表视图类:

@IBOutlet var tableViewHongKong: UITableView! var restaurantList = [RestaurantModel]() override func viewDidLoad() { super.viewDidLoad() ref = FIRDatabase.database().reference().child("restaurants") ref?.observe(FIRDataEventType.value, with: {(snapshot) in if snapshot.childrenCount>0 { self.restaurantList.removeAll() for restaurants in snapshot.children.allObjects as![FIRDataSnapshot] { let restaurantObject = restaurants.value as? [String: AnyObject] let restaurantName = restaurantObject?["name"] let restaurantPhone = restaurantObject?["phone"] let restaurant = RestaurantModel(name: name as! String?, phone: phone as! String?) self.restaurantList.append(restaurant) } } self.tableViewHongKong.reloadData() }) } override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { return restaurantList.count } override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! TableViewControllerTableViewCell let restaurant: RestaurantModel restaurant = restaurantList[indexPath.row] cell.nameLabel.text = restaurant.name return cell } } 

这是表格视图单元类:

 @IBOutlet var myImage: UIImageView! @IBOutlet var nameLabel: UILabel! 

这是餐厅模特类:

 var name: String? var phone: String? init(name:String?, phone:String?) { self.name = name; self.phone = phone } 

作为在另一个类上传的图像,餐厅。

 var imageURL = "" func addRestaurant() { ref = FIRDatabase.database().reference().child("restaurants") let key = ref?.childByAutoId().key let name = addName.text let phone = addPhone.text ref?.child(key!).setValue(["name": name, "phone": phone, "image": imageURL]) } func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) { let image = info[UIImagePickerControllerOriginalImage] as? UIImage addImage.image = image var data = Data() data = UIImagePNGRepresentation(image!)! let uniqueName = NSUUID().uuidString let imageRef = FIRStorage.storage().reference().child("restaurantImage").child("\(uniqueName)") imageRef.put(data, metadata: nil).observe(.success){(snapshot) in self.imageURL = (snapshot.metadata?.downloadURL()?.absoluteString)! } self.dismiss(animated: true, completion: nil) } 

有关更多详细信息,请访问Firebase数据库结构

非常感谢你 ! ^。^