【Flutter】cloud_firestoreでFirebase Cloud Firestore APIを使う

Flutter

cloud_firestoreとは

cloud_firestoreは、FlutterアプリケーションでFirebase Cloud Firestore APIを使用するためのプラグインです。Cloud Firestoreは、リアルタイムの同期とオフラインサポートを備えたクラウドホスト型のNoSQLデータベースで、AndroidおよびiOSプラットフォームで利用可能です。このプラグインを使用することで、Flutterアプリケーションから直接Cloud Firestoreデータベースにアクセスし、データの読み書きが簡単に行えます。

cloud_firestore | Flutter Package
Flutter plugin for Cloud Firestore, a cloud-hosted, noSQL database with live synchronization and offline support on Andr...

使い方

1. インストール

pubspec.yamlファイルに以下の依存関係を追加します:

dependencies:
  flutter:
    sdk: flutter
  firebase_core: latest_version
  cloud_firestore: ^5.0.0

2. Firebaseの設定

Firebaseプロジェクトを作成し、FirebaseコンソールからFlutterアプリに必要な設定ファイルをダウンロードします。設定ファイルをプロジェクトに追加し、以下のようにFirebaseを初期化します:

import 'package:firebase_core/firebase_core.dart';
import 'package:cloud_firestore/cloud_firestore.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp();
  runApp(MyApp());
}

3. Firestoreの使用

コレクションとドキュメントの参照

Cloud Firestoreではデータはコレクションとドキュメントに格納されます。以下の例では、usersコレクション内のすべてのドキュメントを取得します:

CollectionReference users = FirebaseFirestore.instance.collection('users');

Future<void> getUsers() async {
  QuerySnapshot querySnapshot = await users.get();
  final allData = querySnapshot.docs.map((doc) => doc.data()).toList();
  print(allData);
}

ドキュメントの追加

新しいドキュメントをコレクションに追加するには、addメソッドを使用します:

Future<void> addUser() {
  return users.add({
    'name': 'John Doe',
    'age': 29,
    'email': 'john.doe@example.com'
  }).then((value) => print("User Added"))
    .catchError((error) => print("Failed to add user: $error"));
}

ドキュメントの更新

既存のドキュメントを更新するには、ドキュメントIDを使用して参照し、updateメソッドを使用します:

Future<void> updateUser(String docId) {
  return users
    .doc(docId)
    .update({'age': 30})
    .then((value) => print("User Updated"))
    .catchError((error) => print("Failed to update user: $error"));
}

ドキュメントの削除

ドキュメントを削除するには、deleteメソッドを使用します:

Future<void> deleteUser(String docId) {
  return users
    .doc(docId)
    .delete()
    .then((value) => print("User Deleted"))
    .catchError((error) => print("Failed to delete user: $error"));
}

4. リアルタイムの更新

リアルタイムでデータの変更を監視するには、snapshotsメソッドを使用します:

users.snapshots().listen((QuerySnapshot snapshot) {
  final allData = snapshot.docs.map((doc) => doc.data()).toList();
  print(allData);
});

この方法により、データベースの変更がリアルタイムでアプリに反映されます。

5. オフラインデータ

Cloud Firestoreはデフォルトでオフラインデータをサポートしています。アプリがオフラインのときでも、データを読み書きし、再度オンラインになったときに同期が行われます。

Buy me a coffee!

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