#flutter #dart #firebase-storage
#сбой #dart #firebase-хранилище
Вопрос:
когда я устанавливаю firebase_storage
в pubspec.yaml
файл, подобный этому:
dev_dependencies:
flutter_test:
sdk: flutter
firebase_auth: ^0.14.0 5
cloud_firestore: ^0.12.9 4
firebase_core: ^0.4.1
provider: ^3.1.0
firebase_storage:
git:
url: git://github.com/danysz/flutterfire.git
ref: master
path: packages/firebase_storage
ошибка отображается, как показано ниже. как это решить? пожалуйста, помогите мне
СБОЙ: сбой сборки с исключением. * Что пошло не так: сбой выполнения для задачи ‘: firebase_storage:compileDebugJavaWithJavac’. > Сбой компиляции; подробности см. В выводе ошибки компилятора. * Попробуйте: запустите с параметром —stacktrace, чтобы получить трассировку стека. Запустите с параметром —info или —debug, чтобы получить больше выходных данных журнала. Запустите с помощью —scan, чтобы получить полную информацию. * Получить дополнительную помощь в https://help.gradle.org ОШИБКА СБОРКИ за 40 секунд Исключение: ошибка сборки assembleDebug задачи Gradle с кодом выхода 1
На самом деле я хочу получить несколько изображений из хранилища firebase, которые я уже загрузил в хранилище для одного изображения, которое я могу использовать getDownloadURL()
, но что делать для нескольких изображений?
import 'package:flutter/material.dart';
import 'package:firebase_storage/firebase_storage.dart';
import 'package:flutter/cupertino.dart';
import 'dart:async';
import 'dart:io';
class Album extends StatefulWidget {
static const routeName = '/album';
@override
_AlbumState createState() => _AlbumState();
}
class _AlbumState extends State<Album> {
@override
Widget build(BuildContext context) {
return Scaffold(
body: Expanded(
child: ListView.builder(
itemCount: 2,
itemBuilder: (ctx, index) => Container(
padding: EdgeInsets.all(10),
child: Column(
children: [
FutureBuilder(
future: _getImage(context, 'user1/abc.jpg'),
builder: (context, snapshot) {
if (snapshot.connectionState ==
ConnectionState.done) {
print('its done');
return CircleAvatar(
radius: 60.0,
child: snapshot.data,
);
}
if (snapshot.connectionState ==
ConnectionState.waiting) {
return CircleAvatar(
radius: 60.0,
child: CircularProgressIndicator(),
);
}
return Container();
}
),
],
),
),
),
),
],
),
),
);
}
Future<Widget> _getImage(BuildContext context, String imageName) async {
Image image;
await FireStorageService.loadImage(context, imageName).then((value) {
image = Image.network(
value.toString(),
fit: BoxFit.scaleDown,
);
});
return image;
}
class FireStorageService extends ChangeNotifier {
FireStorageService();
static Future<dynamic> loadImage(BuildContext context, String Image) async {
return await FirebaseStorage.instance.ref().child(Image).getDownloadURL();
}
}
это код для одного изображения, и он работает, но для нескольких изображений я не знаю, что делать.
Комментарии:
1. Вы добавили разрешение на доступ в Интернет?
2. Вам нужно добавить
firebase_storage
подобное?3. @Andrej Я видел это в stackoverflow для получения нескольких изображений, поэтому я попробовал, но это не работает
4. Вы должны просто ввести
firebase_storage:
pubspec.yaml
зависимости. Я использовалfirebase_storage
много раз, и я всегда добавлял это так. Никогда не было никаких проблем. Пожалуйста, попробуйте.5. хорошо, я попробую, спасибо