絞り込み条件を変更する
検索条件を絞り込む

すべてのカテゴリ

16 件中 1 - 16 件表示
カバー画像

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

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)の全てのコレクション/ドキュメントに対して、読み込みと書き込みができ
0
カバー画像

Firebase のセキュリティルールで面倒な「場所」

Firebase のセキュリティルールで面倒な「場所」Firebase のセキュリティルールを設定する上で一番面倒なのが場所です。理由は簡単で、種類が多いからです。「人」は、ユーザー認証(ログイン)で区別できますし、「出来る事」は、基本的には「読み込み」と「書き込み(作成・更新・削除)」です。しかし、「場所」は、使い方にもよりますが、シンプルには全部書き出せません。この記事では Firebase のセキュリティルールで指定する場所について紹介します。何故「場所」が面倒なのか?面倒な理由は、「場所」の範囲を特定できないからです。 人の場合は、ログイン名(Firebase の場合基本は E-Mail アドレス)や UID(ユーザー ID)で特定できます。出来ることも、基本は読み込みと書き込みで、全部挙げるのは簡単です。つまり、比較的簡単に特定できて指定可能なので殆どの場合問題になりません。しかし、アクセスを許される「場所」の場合は、範囲の特定が難しいので面倒になります。復習を兼ねて人を指定する場合の基本は:* 特定の E-Mail アドレスか UID(E-Mail や UID が一致する利用者)* ログインしているかしていないか出来ることの場合は、* 読み込みが出来るか* 書き込みが出来るか(新規作成できるか、データの更新ができるか、削除できるか)基本的にこれだけです。ところが場所の場合は、シンプルにいかないケースがあるので面倒ということです。ブログサービスの場合は簡単!場所の指定も、ブログサービスの場合は実はシンプルです。 前回の記事で紹介した通り、利用者は、「サイトの運営者(管
0
カバー画像

セキュリティルールに必須!〜利用者の特定

セキュリティルールに必須!〜利用者の特定Firebase のセキュリティルールを設定する上で必要なポイントは「人」「場所」「出来る事」と言う話を紹介しました。その中の一つの「人」を区別するには、ユーザー認証(ログイン)が必要になります。一見シンプルなログインですが区別の仕方によって作り方も使い方も変わってきます。この記事では、ユーザー認証をどの様に利用するかを紹介します。どのような「区別」が必要か?ユーザー認証(ログイン)を利用すれば、使っている人が誰なのかを特定することができます。Firebase のセキュリティルールを設定する上で利用者を区別する必要があるので、ユーザー認証はある意味必須です。しかし、実際にどの様に利用するかで実際のサービスの実装は変わってきます。前回の記事でも紹介していますが、利用者の区別の方法は幾つかあります。それによってユーザー認証(ログイン)の処理が必要な場所も変わってきます。もちろん、開発するサービスやアプリの機能によってそのやり方も大きく変わってしまいます。そこで、この記事では現在紹介している「ブログサービス」を例に考えてみます。ブログサービスの場合はユーザー認証は不要!?Firebase のセキュリティルールを設定するためには、利用者の区別ができれば良いわけです。従って、ブログサービスの場合は、基本は「ユーザー認証」は行わないと言う方法が一般的に使われます。 ユーザー認証を行わないでどうやって区別するかという事ですが、あくまで「基本的に」行わないと言う事です。つまり、一般の利用者は「何もしない=ユーザー認証をしない」と言う方法で区別します。一方
0
カバー画像

スマホアプリのセキュリティルール

スマホアプリのセキュリティルールFirebase は Web 系のアプリだけではなく、スマホのアプリでも活用できます。いずれにしても、サーバー側以外から Firebase のデータベースやストレージを利用する場合には、セキュリティルールの設定が必要です。この記事ではその違いについてまとめてみました。Web ブラウザからのアクセスWeb サイトを利用してアプリやサービスを提供する場合、基本的にアプリやサービスのプログラムは Web ブラウザ上で動作することになります。Web 開発者の方はご存知の方も多いと思いますが、Web アプリやサービスで利用するファイルは全て簡単に見ることができます。Web ページの基本となる、HTML や CSS のファイル、プログラムの Javascript のファイル、画像情報などは、大抵の Web ブラウザの拡張機能や、簡単なコマンドで閲覧可能です。Web ブラウザやクライアント(スマホなどのアプリ)から Firebase の機能を利用するためには、API キーなどの Firebase のプロジェクトに割り当てられた情報が必要になります。これらの設定情報も、Web ブラウザなどで閲覧可能な情報に含まれているため、調べようと思えば調べることが可能です。これらの情報が比較的簡単に見つけることができる関係上、不正アクセスを行うためのハードルが下がってしまうのが問題です。スマホのアプリの場合は?Web ブラウザと違って、スマホのアプリは、スマホ上で動作するプログラムです。iOS のアプリの場合は、Swift か Objective ー C、アンドロイドのアプ
0
カバー画像

Firebase のセキュリティルールは「人・場所・できる事」

Firebase のセキュリティルールは「人・場所・できる事」Firebase のセキュリティルールは一見複雑そうに見えますが、基本は「人」、「場所」、「出来る事」をまとめる事です。この記事では、Firebase のセキュリティルールの基本を紹介します!Firebase のセキュリティールールとは何か?Firebase を Web ブラウザ(フロントエンド)から利用する際には、Firebase のセキュリティルールを設定する事が必須になります。ところで、このセキュリティルールとは何かご存知ですか?まずは、そこから紹介します。 セキュリティルールは一言で言えば、「誰がどこで何をしていいかを決める」事です。従って、セキュリティルールを設定する上でのポイントは:* 誰(人)* どこ(場所)* 出来ること(何をするか)この三つを決めれば良い事になります。人を特定する誰がどこですか何をして良いかを決めるためには、最初に必要な事は「人を特定」する必要があります。 Web のアプリやサービスで人を特定する方法は、基本的には「ユーザ名」で区別しています。特定のユーザー名のパスワードを知っていればその人と見做すという仕組みです。これを、ユーザー認証機能とかログイン(サインイン)機能と呼んでいます。Firebase の場合は、大きく三つの方法があります。Firebase コンソールにアクセスできる人(管理者)とそれ以外の人ログインしている人としていない人ユーザー認証をして個別のユーザーとして区別Firebase のコンソールで必要な操作が間に合うのであれば、特にユーザー認証(ログイン)の機能を作る
0
カバー画像

Firebase のデータベースでファイルの情報を管理!

Firebase のデータベースでファイルの情報を管理!Firebase のストレージにブログの投稿を保存してブログのサービスの基本の準備ができました。更に使いやすいサービスにするために Firebase のデータベースの Cloud Firestore のデータベースに投稿の情報を入れておくと、より効率的に投稿の情報が取得できます。Firebase のストレージに保存したファイルからのデータの取得Markdown にブログの投稿のメタデータを埋め込んで置くと、そこから投稿の情報が取得できます。この情報を利用すれば、投稿の詳細を表示することが可能になります。しかし、この方法では情報を取得するには非常に手間がかかります。主な手順は以下の通りです。1. Firebase ストレージに保存されているファイル(フォルダ)の一覧を取得2. ファイル(フォルダ)の一覧を元にファイルの中身を取得3. ファイルの中身からファイルのメタデータ(ブログの情報)を取得というステップでブログのデータを取得します。問題は、実際にブログの投稿を表示しない場合でもファイルの中身を取得する必要があります。要は不要なアクセスが増える事になります。投稿時に必要なデータを取得しておく不要なアクセスを最小限にするために、ブログの原稿を投稿する際に Markdown のファイルに埋め込んだメタデータを取得して Firebase のデータベースである Cloud Firestore に情報を保存しておきます。 このようにする事で、ブログの原稿の情報は、Cloud Firestore から取得できるので、毎回投稿の原稿全体
0
カバー画像

Firebaseデータベースでドキュメントごとにセキュリティルールを設定する

Firebaseデータベースでドキュメントごとにセキュリティルールを設定するFirebaseでデータベース(Cloud Firestore)を利用する場合、セキュリティルールの設定はとても大切です。 Firebaseコンソールでデータベース(Cloud Firestore)を作成した際に標準で設定されるルールはとてもシンプルなものです。実際の運用では、さらに細かいセキュリティルールが必要になる場合が殆どです。 コレクション毎のセキュリティルールの設定は比較的シンプルで分かりやすいので余り問題にならないと思いますが、ドキュメントごとにセキュリティルールを設定する場合は少し複雑になるのでなれないとルールの設定に時間を取られてしまう場合もあります。 この記事では、Firebaseの登録ユーザの拡張を考えた場合のセキュリティルールを例にセキュリティルールの設定の仕方を解説しています。 Firebaseが管理するユーザー情報 Firebaseでは、ユーザーの認証機能が用意されていてユーザーの管理や認証を簡単に実装することを可能にしています。 Firebaseから入手可能なユーザーの情報はE-Mailアドレスとパスワードの認証を理容師ている場合は次の様になります。 * E-Mailアドレス(email) * ユーザーID(uid) が基本的な情報です。これ以外の情報が必要な場合は、別にカスタムでテーブルを作って管理する必要があります。 グループごとにユーザーを管理することを考える 例えば、グループごとに管理者を置いてユーザーを管理することを考えます。 この場合は、Firebas
0
カバー画像

知らないと損をする Firebase ストレージのセキュリティルール

知らないと損をする Firebase ストレージのセキュリティルールFirebase のストレージのセキュリティルールは、Firebase のストレージのバケット(bucket)にアクセスするためのルールです。Firebase のストレージのファイルに割り当てられている URL を取得する事ができますが、この URL のアクセスには適用されません。 Firebase のファイルの URL へのアクセスは、セキュリティルールでは管理できません。この記事ではその詳細について紹介しています。セキュリティルールでカバーされない URL アクセス知らないと損をするというのは、Firebase のストレージにあるファイルに URL を使ってアクセスする場合です。 実は、このアクセスには、Firebase のセキュリティルールが適用されません。これを知らないと、会員のみに公開している内容が誰でもみる事ができる状態になっていると言うことが起こってしまいます。とは言った物の Firebase のストレージのファイルにアクセスするための URL を取得するには、セキュリティールールでアクセスの権限を持っていないと取得はできません。従って、あるレベルのセキュリティは存在します。セキュリティルールで管理できることでは、セキュリティルールで管理できるのは何かという事になると思いますが、それは Firebase ストレージのバケット(bucket)に対するアクセスです。Firebase のストレージのバケットにファイルを保存したり、バケットにあるフォルダやファイルの一覧を取得したり、個別のファイルの情報を
0
カバー画像

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

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 日間)を過
0
カバー画像

Firebaseデータベース設計のコツは?

Firebaseデータベース設計のコツは?Firebaseのデータベースは一般的によく利用されているデータベースのタイプとは違います。SQLなどのデータベースはリレーショナル型と呼ばれる物で、複数のテーブルを関連付けて使います。 ここでは、リレーショナル型データベースの詳しい話は省きますが、Firebaseの場合はCloud Firestoreは、JSONベースのデータベースでテーブルと似たような活用法もかの運ですが、全てのドキュメントのフィールドデータが同じである必要はありません。 従って、活用の仕方も変わってきますし、向いているアプリと、向いていないアプリも当然存在します。 Firebaseのデータベースが向いているアプリ Firebaseのデータベースは、複雑なデータ処理が要求されるようなアプリには余り向いていません。もう少し具体的にいえば、複数の関連するテーブルを使った複雑なクエリーでデータを検索したりする場合です。 こうした処理はリレーショナル型のデータベースが得意としている処理で、正規化された複数のテーブルを使ったクエリを使って必要な情報を取り出したりしたい場合には便利です。 Firebaseの場合は複数のコレクションからデータを抜き出したい場合には、複数のクエリーを使う必要がある場合がどうしても多くなります。これは、FirebaseのデータベースをアクセスするためのAPIの仕様が複数のコレクションに同時にアクセスする機能はサポートしていないので、一つ一つのコレクションから必要なデータを抜き出して利用する必要があるからです。 一つのテーブルで解決できるよう
0
カバー画像

Firebaseストレージの上手な使い方

Firebaseストレージの上手な使い方Firebase のストレージはインターネット上のサーバーにファイルなどの情報を置いて利用する事ができます。この記事では、Firebase のストレージ機能の利用の例を紹介してみました。便利なオンライン配信の手段Firebase ストレージの便利な使い方で多く利用されているのが、オンライン配信のための場所としての使い方です。例えば、Web サイトで紹介するだけではなくより詳細の情報の入ったファイルをダウンロードして利用者に提供するようなサービスを作る場合、Firebase のストレージはその情報の置き場所として利用できます。もっともシンプルで簡単な使い方の例は、提供するファイルを Firebase のストレージにアップロードしてそのリンクを提供するという方法でファイルを提供するサービスを実現できます。一番簡単な情報の提供方法は?一番簡単にファイルによる情報を提供する方法は Firebase コンソールを利用する方法です。Firebase コンソールに行って利用する Firebase のプロジェクトのストレージメニューから提供するファイルをアップロードして利用します。Firebase コンソールからアップロードしたファイルをダウンロードするためのリンクを取得できるので、このリンクを使ってファイルを提供するだけです。 この方法の場合、特別なプログラムをしなくても Web ページからリンクを提供できればサービスを提供できます。ファイルの詳細情報を保存するファイルの数が余り多くなく、個別にダウンロード用のリンクを利用する場合は余り必要ではありませ
0
カバー画像

FirebaseとReactでブログを実装!

FirebaseとReactでブログを実装!FirebaseでWebホスティングをすれば、無料でWebサイトの運営をスタートできます。 Firebaseの利用事例としてブログサイトの運用を取り上げてみました。 この記事ではシンプルなブログの運用例としてフロントエンドのフレームワークのReactを使った事例を何回かに分けて紹介していきます。 利用するFirebaseの機能は? この事例で利用するFirebaseの機能は * Firebase ストレージ * Firebase Cloud Firestore (データベース) * Firebase ホスティング の3つの機能です。 Firebaseストレージで記事を保存 ブログの記事はFirebaseのストレージに保存します。こうすることで、Fireabaseのホスティングに毎回デプロイすることを避けることができます。 一番シンプルな方法は、毎回記事のHTMLのファイルを作成して、その都度その記事をWebサイトに追加していく方法ですが、毎回Webサイトのデプロイを行わなければならず、運用上はちょっと面倒な仕組みです。そこで記事自体はFirebaseのストレージに保存しておいて、プログラムでFirebaseストレージのファイルを読み込んで表示するという仕組みを作れば、サイトの運営がシンプルになります。 Firebase Cloud Filrestore(データベース)に記事情報を保存 Firebaseのストレージだけでも、ブログサイトの仕組みは作れますが、将来的なサイトの拡張を考えると、各記事の情報をデータベースで保存して
0
カバー画像

Firebaseストレージのセキュリティルールはトリッキー!!

Firebaseストレージのセキュリティルールはトリッキー!!今日の記事は、Firebaseストレージのセキュリティルールに関してです。 Firebaseのデータベース同様、Firebaseのストレージを利用する際はセキュリティルールを設定する事は同じように大切です。しかし、いくつかわかりにくい点がFirebaseのストレージにはあるのでこの記事で解説しています。 最初にプロジェクトを作成してFirebaseのストレージの設定をしたときに標準で設定されるルールは以下のようなルールです。 rules_version = '2'; service firebase.storage {   match /b/{bucket}/o {     match /{allPaths=**} {       allow read, write: if request.auth != null;     }   } } このルールの設定は、全てのFirebaseのストレージのアクセスには、Firebaseにログインすることが必要という設定です。「request.auth != null」の意味は、Authentication(ユーザーの認証)が完了しているという意味です。 Webアプリの制限事項 FirebaseはWebアプリ以外のiPhone(iOS)やAndroidのスマホのアプリにも利用できます。しかし、ここではWebアプリ(Webブラウザを利用したアプリ)の場合を想定しています。Webブラウザで動作する、Webアプリは、セキュリティを確保するために、Webブラウザでいろいろな制限を
0
カバー画像

Firebase ストレージのセキュリティルール

Firebase ストレージのセキュリティルールFirebase ストレージを Web ブラウザ(クライアント)側から使う場合も、Firebase データベース(Cloud Firestore)を利用する場合と同様にセキュリティルールを設定してアクセスの権限を管理する必要があります。この記事では、Firebase ストレージを利用する際のセキュリティルールの設定のやり方を紹介します。基本的はデータベースと同じです!Firebase ストレージのセキュリティルールの基本は Firebase のデータベース(Cloud Firestore)と同じです。従って、Firebase のデータベース(Cloud Firestore)のセキュリティルールを書いた事があれば同じ容量で設定できます。Firebase のデータベースのセキュリティルールの記事でも書いていますが、セキュリティルールの基本は以下の3点です。* ユーザーによる設定* アクセスする対象による設定* アクセスタイプによる設定 です。ユーザによる設定ユーザーによる設定の場合は、Firebase のユーザー認証機能を利用してユーザー認証(ログイン)の情報である、ユーザー ID(uid)や E-Mail アドレスなどを利用してルールを設定します。この部分は、Firebase のデータベース(Cloud Firestore)の場合と全く同じ要領で設定できます。アクセス対象による設定アクセスに対象による設定は、Firebase データベース(Cloud Firestore)の場合、データベースのコレクションやドキュメントでしたが、Fi
0
カバー画像

Firebaseのセキュリティルールはどこで設定する?

Firebaseのセキュリティルールはどこで設定する?フロントエンド(Webブラウザ)からFirebaseのデータベースやストレージ機能を利用する場合、セキュリティルールをきちんと設定することがとても大切です。 ところで、どのセキュリティルールを実際に使っているかきちんと理解しておくことが大切です。 FirebaseのセキュリティルールはFirebaseコンソールで確認 現在、有効になっているFirebaseのセキュリティルールはFirebaseコンソールで確認できます。まずは、Firebaseコンソールで現在有効になっているセキュリティルールを確認するようにしてください。 Firebaseのプロジェクト作成時はFirebaseコンソールで決める Firebaseのプロジェクトを作成して、最初にFirebaseのデータベースやFirebaseのストレージ機能を有効にする際には、セキュリティルールをそれぞれ設定する必要があります。このルールはFirebaseコンソールで行います。最初はテンプレートとなる標準の設定で設定する場合がほとんどで、他ではセキュリティルールの設定は行っていないので大きな問題はありません。 注意するのは「firebase init」を実行した後 Firebaseのプロジェクトをインターネットに公開(デプロイ)する際は、Firebaseのプロジェクトフォルダーを作って「firebase init」を実行する必要があります。この実行をした後は要注意です。「firebase init」の設定で、FirebaseのデータベースやFirebaseのストレージを
0
カバー画像

Firebaseデータベースのセキュリティルールの基本

Firebaseデータベースのセキュリティルールの基本Firebaseのデータベースを利用する場合、セキュリティルールをきちんと設定する事が重要です。プログラムでアクセスの制限をかける事はある程度可能です。しかし、セキュリティルールでアクセス権を適当に設定してあれば、不必要なアクセスをより確実に防ぐことが可能になります。 Firebaseのセキュリティルールの仕組み Firebaseのセキュリティルールはアクセスタイプごとに設定するようになっています。 アクセスタイプは: * 読み込み(read) * 書き込み(write) に分けられます。 さらに細かい分類に分ける事ができます。 読み込みはさらに2つのタイプ、 * get * list に分ける事ができます。 書き込みはさらに3つのタイプに分けられます。 * create * update * delete まとめると以下の表の様になっています。Firebaseのドキュメントでも同じ情報がまとめられています。セキュリティルールはストレージへのアクセスも同じ記法で書けるので以下の表ではファイルも含まれています。ここでは、データベース(特にCloud Firestore)について解説していきます。 * get:ドキュメントまたはファイルへのアクセス * list:コレクションやクエリーのアクセス * create:ドキュメントの新規作成 * update:既存のドキュメントまたはファイルの更新 * delete:データの削除 ルールを適用するサービスを指定 既に触れたように、セキュリティルールはデータベース
0
16 件中 1 - 16