投稿

Firebaseアプリのデータベースを管理するには?

イメージ
ホーム ブログ Firebase情報 Firebaseアプリのデータベースを管理するには? 2021年2月19日 Firebase アプリのデータベースを管理するには? Firebase のデータベース機能(Cloud Firestore)を利用して作成したアプリの多くは、アプリで利用しているデータベースを管理する必要がある場合が多くなります。作成したアプリの一部として管理する方法もありますが、専用の管理アプリを作成するとセキュリティ上より安全に管理を行う事ができます。 この記事では、Firebase のデータベースを管理する専用アプリを Firebase admin SDK を利用して行う方法を紹介します。 Firebase データベースのセキュリティールールで管理者を設定できる 一番手軽な方法は、作成するアプリの一部として、「管理者モード」を実装してしまう方法です。これは、管理者の Firebase のユーザー ID を特定して、そのユーザーに管理者の権限を設定する方法です。 rules_version = '2'; service cloud.firestore { match /databases/{database}/documents { match /{document=**} { allow read, write: if request.auth.uid == "uid_for_admin"; } } } のようなセキュリティルールを設定すれば、特定のユーザー ID で Firebase のユーザー認証(ログイン)したユーザーは Firebase のデータベース(Cloud Firestore)の全てのコレクション/ドキュメントに対して、読み込みと書き込みができる権限を設定できます。 あとは、提供するアプリの一部として管理機能を実装すれば、インターネットを介して Firebase のデータベースの管理を行う事ができま...

Firebase書き込みの為のセキュリティールール

イメージ
ホーム ブログ Firebase情報 Firebase書き込みの為のセキュリティールール 2021年2月18日 Firebase 書き込みの為のセキュリティールール Firebase のデータベース(Cloud Firestore)の読み込みの権限を設定するセキュリティルールは比較的シンプルなのでわかりやすいと思います。しかし、書き込みの場合少し複雑です。 この記事では、Firebase のデータベース(Cloud Firestore)への書き込みの為の権限の設定を行うセキュリティルールについて基本事項をまとめてみました。 Firebase のデータベースへの書き込みアクセス Firebase のデータベース(Cloud Firestore)への書き込みの為のセキュリティルールを考える前に、まず、Firebase のデータベース(Cloud Firestore)への書き込みアクセスについて確認しておきます。 Firebase のデータベース(Cloud Firestore)への書き込みアクセスは大きく3つの種類があります。 新規作成(新たにドキュメントを追加する)- create 更新(既存のドキュメントのデータの更新)- update 削除(既存のドキュメントを削除)- delete Firebase のセキュリティルールは「読み込み(read)」と「書き込み(write)」を分けて設定できますが、書き込みの権限はさらに上に挙げた分類毎に設定できます。 アプリケーションによって必要な権限が変わります! Firebase のデータベースのアクセス権限は、開発するアプリケーションによって必要な権限や設定が変わってきます。まずは、開発するアプリケーションについて「誰が」「どんなアクセス」を必要とするのかを考えることか始めます。 お問い合わせフォームのサービスの場合 まずは、シンプルな例としてお問い合わせフォームの Web サービスをする場合を考えてみます。サービスの内容は、利用者が問い合わせたい内容を入力フォ...

Firebaseのセキュリティルールからのデータベースアクセス

イメージ
ホーム ブログ Firebase情報 Firebaseのセキュリティルールからのデータベースアクセス 2021年2月17日 Firebase のセキュリティルールからのデータベースアクセス Firebase のデータベースのセキュリティルールを設定する際に、Firebase のデータベースのデータを利用することが可能です。前回の記事では、グループ毎の Firebase のデータベースのアクセスをシンプルにするために、カスタムでユーザー情報のコレクションを作成して利用する方法を紹介しました。 実は、Firebase のデータベースのセキュリティルールの中からデータベースのアクセスをする場合には幾つか注意があります。この記事では、Firebase のセキュリティルールからデータベースを利用する場合に気をつけることをまとめて見ました。 Firebase のセキュリティルールからのデータベースアクセス Firebase のセキュリティールールの中で Firebase のデータベースにアクセスできる機能はとても便利です。この場合、見落としやすいのは、セキュリティルールのために作成したデータベースへのアクセスです。 例えば、前回紹介した、グループアクセス管理のためのユーザーコレクションを考えてみます。 ドキュメント ID E-Mail uid gid Name aaa zzz@xx.com aaa 1 ZZZ YYYY bbb xxx@xx.com bbb 1 XXX WWWW ccc vvv@yz.net ccc 2 VVV UUUU 例なのでシンプルに3人のユーザ「ZZZ」「XXX」「VVV」を考えます。 コレクションには各ユーザーに対応したドキュメントを保存します。 { "docId": "ドキュメントID", "email": "E-Mailアドレス", "uid": "ユーザーID...

Firebaseのデータベースのセキュリティルールの書き方 グループ編

イメージ
ホーム ブログ Firebase情報 Firebaseのデータベースのセキュリティルールの書き方 グループ編 2021年2月16日 Firebase のデータベースのセキュリティルールの書き方 グループ編 Firebase のデータベースのセキュリティルールの具体的な書き方を紹介していきます。 今回はグループ単位でセキュリティルールを管理する場合の例について紹介します。 基本のルール Firebase のプロジェクトを作成して、Cloud Firestore のデータベースを作成すると、最初にルールを設定するように言われます。 基本的な選択肢は2つです プロダクションモード(production mode) テストモード(test mode) 通常はこのどちらかを選択して開発を始めます。 プロダクションモード プロダクションモードは基本的に全てのアクセスが禁止になっています。 必要に応じて、アクセスの権限を設定する必要があります。 以下のルールが標準設定のプロダクションモードになります。 この状態では、データベースのアクセスはできません。 rules_version = '2'; service cloud.firestore { match /databases/{database}/documents { match /{document=**} { allow read, write: if false; } } } テストモード テストモードの場合は、基本的に全てのアクセスが許可されています。 インターネットに公開しないで、開発する場合は、このモードを使うとまずは開発の基本的な機能の開発に集中できます。期限をつけて許可をしているので設定した日時(通常はデータベースを作成してから 30 日間)を過ぎるとアクセスができなくなります。 以下のルールが標準設定のテストモードです。 この状態では、データベースの全てのデータにアクセスできるので、この状態でイ...

2つのFirebaseのアクセス方法 フロントエンドとバックエンド

イメージ
ホーム ブログ Firebase情報 2つのFirebaseのアクセス方法 フロントエンドとバックエンド 2021年2月15日 2つの Firebase のアクセス方法 フロントエンドとバックエンド Firebase のデータベースを利用する場合、フロントエンドからアクセスする方法とバックエンドからアクセスする方法があります。 手軽なのは、フロントエンドからアクセスする方法です。バックエンドサービスを作る必要がないので簡単に実装できるのは魅力です。一方で、アクセスの権限の細かい設定は、セキュリティルールで設定する必要があるので、複雑な権限やデータを扱う場合には面倒な点もあります。 手軽に利用できるフロントエンドからのアクセス 一番一般的でポピュラーな方法は Firebase のクライアント機能を利用する方法です。 一番簡単な方法は、CDN(Contents Delivary Network)を利用する方法で、HTML で CDN のリンクを指定すれば、簡単に Firebase のデータベースにアクセスすることが可能です。 テストモードならば簡単 Firebase のデータベースは、Firebase のプロジェクトを作成して、データベースを作成する時に設定するようになっています。この時聞かれるのが、「プロダクションモード」と「テストモード」です。 プロダクションモードは基本的にアクセスが禁止になっているので、必要に応じてセキュリティールールを設定してアクセスを許可していく必要があります。 テストモードは基本的に全てのアクセスを許可しています。従って、誰でも全てのデータにアクセスできるのでインターネット上にサービスを公開する際には、セキュリティルールを設定して必要最低限のアクセスを許可するように変更する事は必須です。通常は、設定時に 30 日間のみアクセスができるような設定になっています。この期間を超えてこのモードを利用する場合には、期間の設定を更新する必要があります。 セキュリティルールが必要な理由 セキュ...