【Flutter】firebase_storageについて

Flutter

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のドキュメントを参照してください。

基本的な使用方法

  1. 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!'),
        ),
      ),
    );
  }
}
  1. ファイルのアップロード

以下は、ファイルを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(),
  ));
}
  1. ファイルのダウンロード

以下は、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(),
  ));
}

Buy me a coffee!

Flutterアプリ開発
シェアする
sogaをフォローする
タイトルとURLをコピーしました