Flutter Pulse
524 subscribers
345 photos
761 links
На канале будут новости про flutter с сайтов, информация об обновлении пакетов, а также авторский контент.
Download Telegram
Скачивание файла из Firebase и отслеживание прогресса

Привет, разработчики Flutter! 👋 Сегодня мы рассмотрим полезный совет по загрузке файлов из Firebase Storage и отслеживанию прогресса загрузки. 📈

Код для скачивания файла:


Stream<TaskSnapshot> downloadFile(String path) async* {
if (await Permission.storage.request().isDenied) {
throw "Вы должны принять разрешение на запись";
}
var fileRef = storage.ref().child(path);
var fileName = fileRef.name;
Directory directory;
if (Platform.isAndroid) {
directory = Directory("/storage/emulated/0/Download");
} else {
directory = (await getExternalStorageDirectory())!;
}
final File destinationFile = File('${directory.path}/$fileName');
if (destinationFile.existsSync()) {
destinationFile.deleteSync();
}
destinationFile.createSync();
var task = fileRef.writeToFile(destinationFile);
yield* task.asStream();
}



Ключевые моменты:
- Проверка разрешений: Используем permission_handler для проверки разрешения на доступ к хранилищу.
- Сохранение в папку загрузок: Файл сохраняется в папку "Download" на Android.
- Замена существующего файла: Если файл уже существует, он будет удален и заменен новым.
- Отслеживание прогресса: Используем yield* для передачи событий из задачи в наш поток, что позволяет отображать прогресс загрузки в приложении.

Чтобы получить текущий прогресс, можно использовать:


var progress = task.bytesTransferred / task.totalBytes * 100;



Оцените нашу новую рубрику советов по Flutter! 👍 Ваши отзывы помогут нам сделать ее еще лучше. 💬

Все подобные советы вы можете найти по хэштегу #FlutterPulseTips.

#flutter #dart #flutterpulse #FlutterPulseTips #Firebase #MobileDevelopment #FlutterTips #AppDevelopment #CodingTips
👍1
Внимание всем разработчикам на Flutter и Dart! 🚀💻
У нас есть потрясающая новость! 🤩 Только что вышел релиз от Стаса Ильина Talker v5.0 ⚡️, и это событие не оставит никого равнодушным! 💪
После более года интенсивной разработки и активной поддержки со стороны сообщества, Talker сделал очередной шаг к тому, чтобы стать самым удобным пакетом для работы с журналами вашего приложения! 📝
Одной из ключевых проблем в предыдущей версии была жесткая привязка плагинов к основному пакету. Но теперь все изменилось! 🔄
Вместо enum TalkerLogType, который ранее использовался для идентификации логов, теперь используются ключи с типом String. Это сделало процесс создания собственных библиотек на основе Talker гораздо проще и более гибким! 🌟
Теперь в TalkerScreen вы можете включать и выключать логирование определенных типов логов прямо в UI! 📊 Например, вы можете временно отображать только ответы сервера в консоли. Это невероятно удобно! 🤩
Хотите узнать больше о механизме работы и всех нововведениях? 🤔 Тогда ждите новых публикаций на этой неделе! 📅
Не забудьте обновиться и начать использовать Talker, если еще не делали этого! ❤️ И, конечно, ставьте лайки на pubdev и GitHub, чтобы поддержать развитие проекта! 🙏
Узнайте все подробности здесь:
И не забудьте подписаться на flutterpulse, чтобы быть в курсе всех последних новостей и обновлений из мира Flutter и Dart! 📱 #flutter #dart #flutterpulse 💻🔥
2👍1