Подведите итог проблемы: Добрый день всем,
Мне кажется, что я не понимаю storageref.downloadURL()
. Я снова и снова пытался загрузить URL моих папок в хранилище Firebase, которые уже были загружены. Я разделил их следующим образом: song / songName, введенный пользователем / {song file.mp3, song photo.jpg}
Примечание: {} - элементы внутри второй папки .
Теперь, когда они уже загружены, я пытаюсь получить jpg изображений в КАЖДОЙ папке, чтобы я мог перечислить их в виде горизонтальной таблицы, чтобы пользователь мог прокручивать их и выбирать, какую песню они хотели бы слушать. По какой-то причине, когда я пытаюсь загрузить URL-адрес загрузки, я получаю сообщение «Песня объекта / название песни не существует».
Опишите, что вы пробовали:
Я попытался поставить storage.reference().child("songs")
, storage.reference().child("songs/\(self.songName)")
и, возможно, обновить функцию list all, чтобы она снова могла проходить через каждый файл. Но я застрял здесь, так как думаю, что, возможно, обработчик завершения, но я еще не слишком хорош в этом. Я также попытался запустить для l oop количество индексов, которое есть у results.prefixes
, и обновить каждую папку как I go, чтобы загрузить каждый URL. Но, похоже, это тоже не работает.
Какой-то код:
func getAlbums() {
let storage = Storage.storage()
let FolderName = "\(NSUUID().uuidString)"
let storageRef = storage.reference().child("BeatFiles")
self.jpgOfSong.append(FolderName)
let metadata = StorageMetadata()
metadata.contentType = "image/jpeg"
storageRef.listAll(completion: {(result,error) in
if let error = error {
print(error.localizedDescription)
}
else {
self.FolderList = result.prefixes
DispatchQueue.main.async {
for num in self.FolderList.indices {
//give songName the new name
//update the search
self.FolderList[num]?.downloadURL(completion: {
(url,error) in
if let error = error {
print(error.localizedDescription)
}
else {
self.imageref = NSImage(contentsOf: url!.absoluteURL)
self.imageArray.append(self.imageref!)
}
})
}
}
}
})
}
Как вы можете видеть, я также пытался использовать метаданные, но это не Кажется, тоже не работает. Я в тупике.