FirebaseStorageUI + sdwebimage - PullRequest
       43

FirebaseStorageUI + sdwebimage

0 голосов
/ 28 июня 2018

Сегодня я обновил модули Firebase и столкнулся с некоторыми проблемами. Прежде всего я получил эту ошибку:

No such module 'FirebaseStorageUI'

Теперь я изменил это на:

import FirebaseStorage
import FirebaseUI

Похоже, это работает, так как все функции все еще доступны, такие как хранилище и sd_webimage.

Теперь я получаю эту ошибку:

Cannot convert value of type 'StorageReference' to expected argument type 'URL?'

Ниже код работал до обновления

let storageRef = Storage.storage().reference().child("user/thomas_1")
self.profileImageView.sd_setImage(with: storageRef, placeholderImage: UIImage(named: "placeholder"), completed: { (image, error, cacheType, storageRef) in
    if image != nil && error != nil {
        UIView.animate(withDuration: 0.3) {
            self.profileImageView.alpha         = 1
        }
    }
})

Теперь этого не произошло, и это дало мне эту ошибку, я изменил ее на URL-адрес, но он все еще не работает или дает мне ошибки. Следуя примерам в документации и примерам приложений, вышеуказанный метод должен работать. Я также узнал, что URL-адрес является прямым путем gs: //, и он недоступен.

Если кто-то может указать (возможно, на очевидную) ошибку, которая была бы очень полезна и заранее спасибо.

1 Ответ

0 голосов
/ 29 июня 2018

Вам потребуется получить URL-адрес для загрузки изображения, который можно получить с помощью метода downloadURL, например:

let storageRef = Storage.storage().reference().child("user/thomas_1")

storageRef.downloadURL { url, error in
  guard let url = url else { return }
  self.profileImageView.sd_setImage(with: storageRef, placeholderImage: UIImage(named: "placeholder"), completed: { (image, error, cacheType, storageRef) in
    if image != nil && error != nil {
      UIView.animate(withDuration: 0.3) {
        self.profileImageView.alpha = 1
      }
    }
  })
}

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

...