firebase_storageとは
firebase_storage
は、FlutterアプリからFirebase Cloud Storage APIを利用するためのプラグインです。Firebase Cloud Storageは、強力でシンプルかつコスト効率の高いオブジェクトストレージサービスであり、Android、iOS、macOS、Web、Windowsプラットフォームをサポートします。
firebase_storage | Flutter package
Flutter plugin for Firebase Cloud Storage, a powerful, simple, and cost-effective object storage service for Android and...
使用方法
firebase_storageのインストール
まず、pubspec.yaml
ファイルにfirebase_storage
を追加します。
dependencies:
firebase_storage: ^12.0.0
初期設定
Firebaseプロジェクトを設定し、Firebaseの依存関係をプロジェクトに追加します。
詳細な手順については、Firebaseのドキュメントを参照してください。
基本的な使用方法
- Firebaseの初期化
Flutterアプリのmain.dart
ファイルでFirebaseを初期化します。
import 'package:flutter/material.dart';
import 'package:firebase_core/firebase_core.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await Firebase.initializeApp();
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('Firebase Storage Example'),
),
body: Center(
child: Text('Hello, World!'),
),
),
);
}
}
- ファイルのアップロード
以下は、ファイルをFirebase Cloud Storageにアップロードする例です。
import 'package:flutter/material.dart';
import 'package:firebase_storage/firebase_storage.dart';
import 'package:file_picker/file_picker.dart';
import 'dart:io';
class StorageExample extends StatefulWidget {
@override
_StorageExampleState createState() => _StorageExampleState();
}
class _StorageExampleState extends State<StorageExample> {
FirebaseStorage storage = FirebaseStorage.instance;
Future<void> uploadFile() async {
FilePickerResult? result = await FilePicker.platform.pickFiles();
if (result != null) {
File file = File(result.files.single.path!);
try {
await storage.ref('uploads/${result.files.single.name}').putFile(file);
print('File uploaded successfully');
} catch (e) {
print('File upload failed: $e');
}
}
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Firebase Storage Example'),
),
body: Center(
child: ElevatedButton(
onPressed: uploadFile,
child: Text('Upload File'),
),
),
);
}
}
void main() {
runApp(MaterialApp(
home: StorageExample(),
));
}
- ファイルのダウンロード
以下は、Firebase Cloud Storageからファイルをダウンロードする例です。
import 'package:flutter/material.dart';
import 'package:firebase_storage/firebase_storage.dart';
class StorageDownloadExample extends StatelessWidget {
FirebaseStorage storage = FirebaseStorage.instance;
Future<void> downloadFile() async {
try {
String downloadURL = await storage.ref('uploads/filename').getDownloadURL();
print('Download URL: $downloadURL');
} catch (e) {
print('File download failed: $e');
}
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Firebase Storage Example'),
),
body: Center(
child: ElevatedButton(
onPressed: downloadFile,
child: Text('Download File'),
),
),
);
}
}
void main() {
runApp(MaterialApp(
home: StorageDownloadExample(),
));
}