Я хочу разрешить пользователю загружать файл .mp3 из iCloud, где я смогу сохранить его в FirebaseStorage. Однако с помощью следующего кода я не могу выбрать какие-либо файлы в предварительном просмотре (iCloud говорит, что не выполнен вход, и нажатие кнопки входа не имеет никакого эффекта) и в симуляторе (я могу войти в систему в iCloud, но по-прежнему не показывает документов).
import SwiftUI
import MobileCoreServices
import Firebase
struct DocumentPickerTestView: View {
@State var showDocumentPicker:Bool = false
var body: some View {
Button(action: {
self.showDocumentPicker.toggle()
}) {
Text("Hello World")
}.sheet(isPresented: self.$showDocumentPicker) {
DocumentPicker()
}
}
}
struct DocumentPicker : UIViewControllerRepresentable {
let docTypes = [String(kUTTypeBMP)]
func makeCoordinator() -> DocumentPicker.Coordinator {
return DocumentPicker.Coordinator(parent1: self)
}
func makeUIViewController(context: UIViewControllerRepresentableContext<DocumentPicker>) -> UIDocumentPickerViewController {
let picker = UIDocumentPickerViewController(documentTypes: docTypes, in: .open)
picker.allowsMultipleSelection = false
picker.delegate = context.coordinator
return picker
}
func updateUIViewController(_ uiViewController: UIDocumentPickerViewController, context: UIViewControllerRepresentableContext<DocumentPicker>) {
}
class Coordinator : NSObject, UIDocumentPickerDelegate {
var parent: DocumentPicker
init(parent1: DocumentPicker) {
parent = parent1
}
func documentPicker(_ controller: UIDocumentPickerViewController, didPickDocumentsAt urls: [URL]) {
print(urls)
// let bucket = Storage.storage().reference()
//
// bucket.child((urls.first?.deletingPathExtension().lastPathComponent)!).putFile(from: urls.first!, metadata: nil) { (_, err) in
// if err != nil {
// print(err!.localizedDescription)
// return
// }
// print("Successfully uploaded to Firebase!")
//
// }
}
}
}
Следует ли мне выполнить некоторые действия по настройке, прежде чем я смогу разрешить пользователям загружать документы? Или есть способ загрузить файлы в симулятор / предварительный просмотр, чтобы я мог проверить эту функциональность? Если это поможет, моя цель - платформа iPad. Спасибо!