00.flutter:04.flutter_webでfirestore
差分
このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン | ||
00.flutter:04.flutter_webでfirestore [2021/05/26] – [Flutter(web)アプリにFirebaseを追加(FirebaseとFlutterアプリの紐付け)] adash333 | 00.flutter:04.flutter_webでfirestore [2021/05/26] (現在) – [Firestoreリンク] adash333 | ||
---|---|---|---|
行 123: | 行 123: | ||
次に、web/ | 次に、web/ | ||
< | < | ||
- | <script src=" | + | <body> |
</ | </ | ||
- | の『直前』に、以下のようなコードを挿入します。”apiKey: | + | の『直後』に、以下のようなコードを挿入します。”apiKey: |
< | < | ||
- | < | + | < |
- | < | + | < |
+ | < | ||
< | < | ||
行 151: | 行 152: | ||
(変更前) | (変更前) | ||
+ | {{: | ||
+ | (変更後) | ||
+ | {{: | ||
- | (変更後) | + | ===== Cloud Firestoreにデータ書き込み ===== |
+ | 以下の本を、Webアプリにしてみてやってみたいと思います。 | ||
+ | < | ||
+ | <a href=" | ||
+ | </ | ||
+ | |||
+ | |||
+ | {{: | ||
+ | |||
+ | まずは、開発モードの状態で、以下のように入力します。 | ||
+ | |||
+ | {{: | ||
+ | {{: | ||
+ | |||
+ | |||
+ | ===== Cloud Firestoreからのデータ取得 ===== | ||
+ | 参考:https:// | ||
+ | |||
+ | flutter run して、Flutterアプリを起動します。 | ||
+ | {{: | ||
+ | |||
+ | |||
+ | lib/ | ||
+ | |||
+ | < | ||
+ | import ' | ||
+ | |||
+ | // Import the firebase_core and cloud_firestore plugin | ||
+ | import ' | ||
+ | import ' | ||
+ | |||
+ | Future< | ||
+ | // Fireabse初期化 | ||
+ | await Firebase.initializeApp(); | ||
+ | runApp(MyApp()); | ||
+ | } | ||
+ | |||
+ | class MyApp extends StatelessWidget { | ||
+ | @override | ||
+ | Widget build(BuildContext context) { | ||
+ | return MaterialApp( | ||
+ | title: ' | ||
+ | theme: ThemeData( | ||
+ | primarySwatch: | ||
+ | ), | ||
+ | home: MyFirestorePage(), | ||
+ | ); | ||
+ | } | ||
+ | } | ||
+ | |||
+ | class MyFirestorePage extends StatefulWidget { | ||
+ | @override | ||
+ | _MyFirestorePageState createState() => _MyFirestorePageState(); | ||
+ | } | ||
+ | |||
+ | class _MyFirestorePageState extends State< | ||
+ | // 作成したドキュメント一覧 | ||
+ | List< | ||
+ | |||
+ | @override | ||
+ | Widget build(BuildContext context) { | ||
+ | return Scaffold( | ||
+ | appBar: AppBar(title: | ||
+ | body: Center( | ||
+ | child: Column( | ||
+ | children: < | ||
+ | ElevatedButton( | ||
+ | child: Text(' | ||
+ | onPressed: () async { | ||
+ | // ドキュメント作成 | ||
+ | await FirebaseFirestore.instance | ||
+ | .collection(' | ||
+ | .doc(' | ||
+ | .set({' | ||
+ | }, | ||
+ | ), | ||
+ | ElevatedButton( | ||
+ | child: Text(' | ||
+ | onPressed: () async { | ||
+ | // ドキュメント作成 | ||
+ | await FirebaseFirestore.instance | ||
+ | .collection(' | ||
+ | .doc(' | ||
+ | .set({' | ||
+ | }, | ||
+ | ), | ||
+ | ElevatedButton( | ||
+ | child: Text(' | ||
+ | onPressed: () async { | ||
+ | // サブコレクション内にドキュメント作成 | ||
+ | await FirebaseFirestore.instance | ||
+ | .collection(' | ||
+ | .doc(' | ||
+ | .collection(' | ||
+ | .doc(' | ||
+ | .set({' | ||
+ | }, | ||
+ | ), | ||
+ | ElevatedButton( | ||
+ | child: Text(' | ||
+ | onPressed: () async { | ||
+ | // コレクション内のドキュメント一覧を取得 | ||
+ | final snapshot = | ||
+ | await FirebaseFirestore.instance.collection(' | ||
+ | // 取得したドキュメント一覧をUIに反映 | ||
+ | setState(() { | ||
+ | documentList = snapshot.docs; | ||
+ | }); | ||
+ | }, | ||
+ | ), | ||
+ | // コレクション内のドキュメント一覧を表示 | ||
+ | Column( | ||
+ | children: documentList.map((document) { | ||
+ | return ListTile( | ||
+ | title: Text(' | ||
+ | subtitle: Text(' | ||
+ | ); | ||
+ | }).toList(), | ||
+ | ), | ||
+ | ], | ||
+ | ), | ||
+ | ), | ||
+ | ); | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | Ctrl+Sで保存して、ターミナル画面で r を押して、更新します。 | ||
+ | さらに、上から順番にボタンをクリックしていくと、以下のようになります。 | ||
+ | |||
+ | {{: | ||
+ | |||
+ | {{: | ||
+ | |||
+ | なお、82行目が、 | ||
+ | < | ||
+ | documentList = snapshot.docs; | ||
+ | </ | ||
+ | で動いて、 | ||
+ | < | ||
+ | documentList = snapshot.documents; | ||
+ | </ | ||
+ | ではエラーがでて動きませんでした。 | ||
行 162: | 行 307: | ||
Cloud Firestore概要 | Cloud Firestore概要 | ||
→すごく分かりやすいです。お勧め。 | →すごく分かりやすいです。お勧め。 | ||
+ | |||
+ | |||
+ | https:// | ||
+ | @Riscait | ||
+ | が2020年11月03日に更新 | ||
+ | FlutterFireがアップデートしたからMigration Guideに沿って修正した記録 | ||
+ | →過去の記事のコードを写経して動かなかったときなど、非常に参考になります。 | ||
+ | |||
+ | https:// | ||
+ | CRUD operations using Firebase Cloud Firestore and Flutter | ||
+ | Apr 14, 2021 | ||
+ | |||
+ | |||
行 192: | 行 350: | ||
Firestoreでリアルタイム更新 | Firestoreでリアルタイム更新 | ||
+ | https:// | ||
+ | @glassmonkey | ||
+ | が2020年03月14日に更新 | ||
+ | Dart(Flutter)における非同期処理入門(Firestoreのデータ取得サンプルつき) | ||
00.flutter/04.flutter_webでfirestore.1622021542.txt.gz · 最終更新: 2021/05/26 by adash333