Не могу загрузить фотографии с Firebase Storage ни по ссылке ни по пути

Всем привет. Я начинающий разработчик и это мой первый пост. Я задал этот вопрос на международном Stackoverflow, но решил продублировать на русском языке из-за своего языкового барьера. Сформулировать вопрос по-русски сейчас для меня намного проще. Вы получите более полную картину.

В Database есть структура блюд, их много, у каждого есть описание цена и поле для ссылки на его фото. Приложение парсит эту информацию в UICollectionView исправно, но напрочь отказывается загружать фото из Storage по ссылке и по пути (пробовал оба способа). Все ссылки https в формате ...firebasestorage.googleapis.com/v0/b/pfood-5b1eb.appspot.com/o/menu%2F26.png?alt=media&token... и доходят до клиента в таком состоянии (см принт в коде).

let urlText = modelArray[indexPath.row].imageURL
    print(urlText) //here is a print
    let ref = Storage.storage().reference(forURL: urlText)
    let megabyte = Int64(1 * 1024 * 1024)
    ref.getData(maxSize: megabyte) { data, error in
        guard let imageData = data else { return } //1st breakpoint
        let image = UIImage(data: imageData) //2nd breakpoint
        cell.itemImageView.image = image!
    }

На оригинальном стеке в комментариях мне порекомендовали проставить брейкопоинты. Приложение проходит через них, но значения, полученные через lldb показали в чем проблема. Функция не получает никаких данных по ссылке. Data = nil, причем это все без проблем проходит через guard и forceUnwrap в последней строчке.

(lldb) expr data (Data?) $R0 = nil

(lldb) expr error (Error?) $R2 = domain: "FIRStorageErrorDomain" - code: 18446744073709538595 { _userInfo = 0x000060000078e2c0 }

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

Вся консоль с ссылками без токенов:

https://firebasestorage.googleapis.com/v0/b/pfood-5b1eb.appspot.com/o/menu%2F26.png?alt=media&token=xxxx https://firebasestorage.googleapis.com/v0/b/pfood-5b1eb.appspot.com/o/menu%2F6.png?alt=media&token=xxxx https://firebasestorage.googleapis.com/v0/b/pfood-5b1eb.appspot.com/o/menu%2F1.png?alt=media&token=xxxx https://firebasestorage.googleapis.com/v0/b/pfood-5b1eb.appspot.com/o/menu%2F26.png?alt=media&token=xxxx https://firebasestorage.googleapis.com/v0/b/pfood-5b1eb.appspot.com/o/menu%2F6.png?alt=media&token=xxxx https://firebasestorage.googleapis.com/v0/b/pfood-5b1eb.appspot.com/o/menu%2F1.png?alt=media&token=xxxx https://firebasestorage.googleapis.com/v0/b/pfood-5b1eb.appspot.com/o/menu%2F14.png?alt=media&token=xxxx https://firebasestorage.googleapis.com/v0/b/pfood-5b1eb.appspot.com/o/menu%2F30.png?alt=media&token=xxxx 2020-08-08 00:04:00.356154+0300 pFood[24374:1517416] 6.19.0 - [Firebase/Analytics][I-ACS031025] Analytics screen reporting is enabled. Call +[FIRAnalytics setScreenName:setScreenClass:] to set the screen name or override the default screen class name. To disable screen reporting, set the flag FirebaseScreenReportingEnabled to NO (boolean) in the Info.plist 2020-08-08 00:04:00.650564+0300 pFood[24374:1517416] 6.19.0 - [Firebase/Analytics][I-ACS023007] Analytics v.60301000 started 2020-08-08 00:04:00.861852+0300 pFood[24374:1517416] 6.19.0 - [Firebase/Analytics][I-ACS023008] To enable debug logging set the following application argument: -FIRAnalyticsDebugEnabled (see xxxx) 2020-08-08 00:04:01.149822+0300 pFood[24374:1517416] 6.19.0 - [Firebase/Analytics][I-ACS800023] No pending snapshot to activate. SDK name: app_measurement 2020-08-08 00:04:02.406372+0300 pFood[24374:1517487] 6.19.0 - [Firebase/Analytics][I-ACS800003] Registered an SDK that has already registered. Default flags will be overwritten. SDK name: app_measurement 2020-08-08 00:04:02.511475+0300 pFood[24374:1517497] 6.19.0 - [Firebase/Analytics][I-ACS800023] No pending snapshot to activate. SDK name: app_measurement 2020-08-08 00:04:10.454503+0300 pFood[24374:1517594] 6.19.0 - [Firebase/Analytics][I-ACS023012] Analytics collection enabled 

Спасибо за помощь и любой фидбэк. Я активно смотрю комментарии и готов уточнить любую деталь.


Ответы (1 шт):

Автор решения: Emil Shpeklord

Проблема действительно оказалась не в коде, а в доступности фб для незарегестрированных пользователей. Решаем эту проблему сейчас

→ Ссылка