Как вставить образы хранилища FireBase в поле Firestore - PullRequest
0 голосов
/ 02 марта 2020

У меня проблема с приложением флаттера, и проблема в хранении базы данных. У меня есть коллекция с полем под названием avatar(String). Его значение исходит из ссылки на изображение, поэтому сначала я загрузил изображения в хранилище базы данных и изменил правила, чтобы разрешить чтение. поэтому, когда я refre sh код, я получаю эту ошибку.

═══════ Exception caught by image resource service ════════════════════════════════════════════════

Был выдан следующий ArgumentError для разрешения изображения

codec:
Invalid argument(s): Unsupported scheme 'gs' in URI gs://pfe-2020-51d9c.appspot.com/Asperge/asperges%20(1).jpg

Когда было сгенерировано исключение, это был стек :

#0      _HttpClient._openUrl (dart:_http/http_impl.dart:2278:9)
#1      _HttpClient.getUrl (dart:_http/http_impl.dart:2197:48)
#2      NetworkImage._loadAsync (package:flutter/src/painting/_network_image_io.dart:84:59)
#3      NetworkImage.load (package:flutter/src/painting/_network_image_io.dart:47:14)
#4      ImageProvider.resolve.<anonymous closure>.<anonymous closure>.<anonymous closure> (package:flutter/src/painting/image_provider.dart:327:17)

... Поставщик изображения: NetworkImage ("gs: //pfe-2020-51d9c.appspot.com/Asperge/asperges (1) .jpg", масштаб: 1.0) Ключ изображения: NetworkImage ("gs: //pfe-2020-51d9c.appspot.com/Asperge/asperges (1) .jpg", масштаб: 1,0) ════════════ ══════════════════════════════════════════════════ ═════════════════════════════════════

А это мой код дротика

================================================== ================================================== ====

 ClipRRect(
            child: Image.network(snapshot.data[index].data['avatar'],
            height: 100,
            width: 170,
            fit: BoxFit.fill,
            ),
               borderRadius: BorderRadius.circular(20),
            ),

1 Ответ

1 голос
/ 02 марта 2020

Flutter не знает, как обращаться с URL-адресами, которые Cloud Storage изначально использует для описания местоположения загруженного файла. Это «gs: //» указывает пользовательскую схему, используемую облачным хранилищем. Вам нужно будет предоставить URL, который Flutter понимает.

Вы можете получить URL-адрес загрузки HTTPS из загруженного файла с помощью , используя getDownloadUrl () . Это URL, который вы должны передать Flutter для загрузки и отображения изображения.

...