Firebase 100%理解した。(理解したとは言っていない)
はじめに
このスクラップはFirebaseを100%理解していない男の備忘録をまとめたものです。
登場する技術は仮想技術であるため、参考程度でのご利用をお願いします。
Firebaseって?(1)
FirebaseはGoogleが購入したBaaSというソリューションです。
BaaSとはバナナ…ではなく
ウィキペディアを参照すると
サービスとしてモバイルバックエンド(MBaaSも「としても知られる)、サービスとしてバックエンド」、[1] [2] [3]は提供するためのモデルであるWebアプリケーション及びモバイルアプリケーションにそのアプリケーションをリンクする方法を開発者にバックエンド・ クラウドストレージまた、ユーザー管理、プッシュ通知、ソーシャルネットワーキングサービスとの統合などの機能を提供しながら、バックエンドアプリケーションによって公開されるAPI 。[4]これらのサービスは、カスタムソフトウェア開発キット(SDK)とアプリケーションプログラミングインターフェイスを使用して提供されます(API)。
引用:Wikipedia:https://en.wikipedia.org/wiki/Mobile_backend_as_a_service
よくわかりませんが、クラウドやモバイルに関するバックエンドサービスを提供するサービスのようです。
ここで分かっていたほうがいいのは、裏側がGoogleのサービスであることです。
GoogleのクラウドサービスであるGCPの設定やゾーンが影響する場合があります。(重要)
各種機能
Firebase Hosting
静的なホームページを公開する機能。
HTTPSで公開してくれるし、独自ドメインも対応しているので大変便利。
Firebase Cloud Function
サーバサイドで実行される特殊な処理を記述できるっぽい。
AWS Lambdaと似た機能で基本GCPのCloud Functionとほぼ同じ(推測)
(作者は利用経験がないため、使ってみたらここに追記して)
Firebase Storage
サーバサイドで大きなファイルを保持しておく機能。
AWS S3と似た機能で基本GCPのCloud Storageとほぼ同じ(推測)
Firebase Authentication
FacebookやTwitter、Githubなどのアカウント情報を流用してログイン/ログアウトを実装できる機能。
独自のアカウントを作成し、管理することもできます。
このアカウント情報を利用してFirestore内のデータへのアクセス管理をすることも可能
Firestore
NO SQL形式のDBサービス。
Javascriptのフロント側でも直接操作も可能。
その他
(気づいたら更新します。)
Firestoreのアクセスルール
はじめに
Firestoreにアクセスするruhruを記載し、アクセス制限をすることができます。
アクセスルール
ロックモード:初期値
すべてのアクセスを拒否するモードです。
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write: if false;
}
}
}
認証済みのすべてのユーザに全てのDBへのアクセスを許可
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write: if request.auth != null;
}
}
}
特定のcollectionへのアクセス許可
service cloud.firestore {
match /databases/{database}/documents {
// Allow public read access, but only content owners can write
match /some_collection/{document} {
allow read: if true
allow write: if false
}
}
}