Firestoreとは
Cloud Fiestore
(Fiestore)はFirebase
のサービスの1つであるサーバーレスのNoSQLデータベースです。
サーバを介さずクライアントとFirestoreが直接やりとりし、
リアルタイムでデータの取得・更新ができます。
オフライン時はキャッシュ済みのデータを返してくれたり、
データ更新できなかった場合は一時的にローカルに保持しオンラインに接続されたタイミングで同期してくれたりなど、
オフライン時もサポートされます。
導入コスト、学習コストも低く、サービスの規模にもよりますが
開発スピードを重視したいときなどは選択肢の一つになるのではないでしょうか。
公式ドキュメント
Firestoreをお試しする
Codelabs
Googleが提供している各種サービスのハンズオン形式のチュートリアル。
WebだけでなくiOSやAndroid, Wearまで様々なプラットフォームのチュートリアルがあり、
気になるサービスをちょっと試してみたいときにとても便利です。
必要なコードはすべてGithubからcloneできるので、
フロントを作るのに時間を割きたくないという方にもおすすめ。
今回はFirestoreを使った下記のチュートリアルを試してみます。
50分ほどでAndroidのレストランおすすめアプリを作成する、というものです。
(チュートリアル完了にかかるおおよその時間は、ステップを進めていくと更新されていきます。)
Cloud Firestore Android Codelab
ちなみに上記のチュートリアルからは下記のことが学べます。
・AndroidアプリからFirestoreへのデータの読み取りと書き込み
・Firestoreデータの変更をリアルタイムで聞く
・Firebase認証とセキュリティルールを使用してFirestoreデータを保護する
・複雑なFirestoreクエリを作成する
AndroidアプリでFirestoreを利用するまでの流れ
- FirebaseコンソールからFirestoreプロジェクトの追加
- プラットフォームの選択→アプリの登録
- 設定ファイル
google-services.json
のダウンロード - ダウンロードした設定ファイルをローカルプロジェクトの
app
直下に追加、再ビルド - Firestoreプロジェクトとローカルプロジェクトのリンク
あとはデータを書き込んだり読み込んで表示したりフィルタリングしたり。
Firestoreは全く使ったことがなかったのですが、
今回のチュートリアルは特に詰まることなくスムーズに進められました。
体験レベルであれ、やはり実際に手を動かすとどのような場面で使えばよいのか
イメージも沸きやすいのでよいですね。
お疲れさまでした!
Firebase Emulater起動時のエラー
Firebase Emulater起動時に下記のように「ポート8080が開いてないよ」と言われましたが
そのまんまで、ポート8080を開放してあげるだけでいけました。
> firebase emulators:start
i emulators: Starting emulators: auth, firestore
i emulators: Shutting down emulators.
i hub: Stopping emulator hub
! firestore: Port 8080 is not open on localhost, could not start Firestore Emulator.
! firestore: To select a different host/port, specify that host/port in a firebase.json config file:
{
// ...
"emulators": {
"firestore": {
"host": "HOST",
"port": "PORT"
}
}
}
i emulators: Shutting down emulators.
Error: Could not start Firestore Emulator, port taken.