I'm trying to use my current image picker to be able to upload a video file locally to firebase. I am able to upload images just fine to firebase storage, but for the life of me i cant figure out how to upload a video. Can somebody please give me a little help on my code below and what i can do to make it a video upload instead of images. TY!!
import SwiftUI
import FirebaseStorage
import AVFoundation
struct UploadVideoView: View {
@State var shown = false
var body: some View {
Button(action: {
self.shown.toggle()
}) {
Text("Upload Image")
}.sheet(isPresented: $shown) {
imagePicker(shown: $shown)
}
}
}
struct UploadVideoView_Previews: PreviewProvider {
static var previews: some View {
UploadVideoView()
}
}
struct imagePicker : UIViewControllerRepresentable {
func makeCoordinator() -> Coordinator {
return imagePicker.Coordinator(parent1: self)
}
@Binding var shown : Bool
func makeUIViewController(context: UIViewControllerRepresentableContext<imagePicker>) ->
UIImagePickerController {
let imagepic = UIImagePickerController()
imagepic.sourceType = .photoLibrary
imagepic.delegate = context.coordinator
return imagepic
}
func updateUIViewController(_ uiViewController: UIImagePickerController, context: UIViewControllerRepresentableContext<imagePicker>) {
}
class Coordinator : NSObject, UIImagePickerControllerDelegate,UINavigationControllerDelegate{
var parent : imagePicker!
init(parent1 : imagePicker) {
parent = parent1
}
func imagePickerControllerDidCancel(_ picker: UIImagePickerController) {
parent.shown.toggle()
}
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) {
let image = info[.originalImage] as! UIImage
let storage = Storage.storage()
storage.reference().child("temp").putData(image.jpegData(compressionQuality: 0.35)!, metadata: nil) { (_, err) in
if err != nil{
print((err?.localizedDescription)!)
return
}
print("success")
}
}
}
}