FirebaseStorageに画像を保存する方法と画像のURLを保存する方法

Blog


ここですること


  1. 画像をFirebaseStorageに保存
  2. 保存した画像のURLをRealtimeDatabaseに保存


UIの設定



あらかじめ画像をAssets.xcassetsに保存しておきましょう。


add.swiftのコード記入


//
//  add.swift
//  FirebaseZeroStart
//
//

import UIKit
import Firebase

class add: UIViewController {
   
    var ref:DatabaseReference?
    
    @IBOutlet weak var imageView: UIImageView!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        //        あらかじめ保存した画像をセット
        imageView.image = UIImage(named: "golden")
        
    }
    
    @IBAction func saveBtn(_ sender: Any) {
        
        var imageData = Data()
        
        let storage = Storage.storage()
        
        let storageRef = storage.reference(forURL: "gs://それぞれの記入する")
       
        let riversRef = storageRef.child("images/image.jpg")
        
        let image = UIImage(named: "golden")
        
        imageData = (image?.jpegData(compressionQuality: 1.0))!
   
        let uploadTask = riversRef.putData(imageData, metadata: nil) { (metadata, error) in
            guard let metadata = metadata else {
                // Uh-oh, an error occurred!
                return
            }
        
            riversRef.downloadURL { (url, error) in
                guard let downloadURL = url else {
                    // Uh-oh, an error occurred!
                    return
                }
                
                let deta = downloadURL.absoluteString
                self.ref = Database.database().reference()
                self.ref?.child("User").child("users").childByAutoId().setValue(["image":deta])
                print("成功!")
            }
        }
        self.navigationController?.popToRootViewController(animated: true)
    }
}


保存結果


Storage



RealtimeDatabase



コメント