метаданные? .storageReference? .downloadURL () возвращает ноль - PullRequest
0 голосов
/ 24 мая 2018

Я пытаюсь загрузить URL для хранения в моей базе данных, но новое обновление в Firebase запрещает мне делать это, требуя, чтобы я использовал новый способ загрузки URL.Вот мой код:

 let imageName = NSUUID().uuidString
 let storageRef = storage.reference().child("project_images").child("\(imageName)")

    guard let uplodaData = UIImageJPEGRepresentation(image, 1) else {
        return
    }


    let uploadTask = storageRef.putData(uplodaData, metadata: nil, completion: { (metadata, error) in

        if error != nil{
            print(error ?? "Failed to upload data in the uploadImages object there was an error:", error!)
            return
        }

Если я поставлю здесь точку останова, она не продолжится после следующего раздела, я не знаю почему.Обычно я вижу эти проблемы при сохранении в неправильном узле или чем-то подобном.

metadata?.storageReference?.downloadURL(completion: { (url, error) in


        if error != nil {
            print("Failed to download url:", error!)
            return
        }

        let url = "\(String(describing: url))"
        uploadedImageUrlsArray.append(url)

        uploadCount += 1
        if uploadCount == imagesCount{
            completionHandler(uploadedImageUrlsArray)
        }
    })
})

Когда я, кроме точки останова, я могу проверить переменную ошибки в завершении, и она равна нулю.

Может кто-нибудь сказать мне, что я здесь не так делаю?

1 Ответ

0 голосов
/ 24 мая 2018

Вы создали ссылку на хранилище для этого конкретного изображения, поэтому используйте его вместо metadata?.storageReference.

storageRef.downloadURL(completion: { (url, error) in


    if error != nil {
        print("Failed to download url:", error!)
        return
    }

    let url = "\(String(describing: url))"
    uploadedImageUrlsArray.append(url)

    uploadCount += 1
    if uploadCount == imagesCount{
        completionHandler(uploadedImageUrlsArray)
    }
  })
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...