Future<void> getArticles() async {
final QuerySnapshot querySnapshot = await collectionReference.get();
final articles = <ArticleModel>[];
for (final doc in querySnapshot.docs) {
final data = doc.data() as Map<String, dynamic>;
final downloadRef = storageRef.child('article_images/${data['dateTime']}.jpg');
try {
image = await downloadRef.getData();
print('image assigned');
print(image);
} catch (e) {
print(e);
}
final article = ArticleModel(
dateTime: data['dateTime'],
image: image,
title: data['title'],
description: data['description'],
userId: FirebaseAuth.instance.currentUser!.uid,
docId: doc.id,
);
articles.add(article);
}
ArticleProvider.articles = articles;
print('data assigned');
}
Если я удалю попытку поймать изображение, все будет работать нормально но проблема возникает, когда я пытаюсь получить изображение из хранилища Firebase. В официальных документах также есть тот же метод, но у меня он не сработал....
пожалуйста, дайте мне решение для этого :)
Я хочу сохранить свое изображение в Uint8List из хранилища Firebase в мою модель статьи. Моя модель статьи для вашей справки
import 'package:flutter/foundation.dart';
class ArticleModel {
String title;
String description;
Uint8List? image;
String userId;
String? docId;
String dateTime;
ArticleModel({required this.title, required this.description, this.image, required this.userId, this.docId, required this.dateTime});
Map<String,dynamic> toMap() {
return {
'title': title,
'description': description,
'userId': userId,
'dateTime': dateTime,
};
}
static ArticleModel fromMap(Map<String, dynamic> article) {
return ArticleModel(title: article['title'], description: article['description'], userId: article['userId'], docId: article['docId'], dateTime: article['dateTime']);
}
}





Наконец-то я нашел решение своей проблемы на Вопрос о переполнении стека
Обычно это происходит при создании веб-приложения с использованием Flutter из-за проблем CORS.
Вот несколько решений, которые я нашел в Интернете:
Решение 1:-
Решение 2: - Скопируйте этот JSON в файл с именем cors.json:
[
{
"origin": ["*"],
"responseHeader": ["Content-Type"],
"method": ["GET", "HEAD", "DELETE"],
"maxAgeSeconds": 3600
}
]
Эту конфигурацию я получил с этой веб-страницы. обратитесь к этому для получения полной информации..
Надеюсь, это может быть вам полезно.
Спасибо, что указали на проблему! Это действительно не очевидно с этим сообщением об ошибке.