投稿

10月, 2020の投稿を表示しています

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

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

Firebaseを利用したアプリを作るときの時間の扱いは?

イメージ
ホーム ブログ Firebase情報 Firebaseを利用したアプリを作るときの時間の扱いは? 2020年10月30日 Firebaseを利用したアプリを作るときの時間の扱いは? 皆さんはWebサービスやWebアプリを作るときに時間の扱いはどうしていますか? Webサイトは世界中からアクセスできるので時間を扱う場合は工夫する必要があります。 例えば、ブログを投稿した時間などの場合は、余り気にならないと思います。 しかし、オンラインのサービスの予約をした場合などはどうでしょうか? きちんと時間を管理しないと行き違いが起きる可能性があります。 時間の扱い方 日本だけで生活しているとあまり気にならない方も多いと思います。 しかし、オンラインで予約システムを作ったりする場合やメッセージをやり取りする場合は結構気を使っています。アメリカ国内でも東海岸のニューヨークと西海岸のサンフランシスコでは別の時間です。Webで時間を扱う場合いくつかのパターンがあります。 WebWebブラウザは端末の設定時間が基本 フロントエンドのコードの場合、プログラムはWebブラウザで動作しているので、通常はWebブラウザを介して端末(PCやスマホ)で設定されている時間を取得しています。 殆どの場合は、その人がいる地域の時刻に設定されているので、実際に使用していても「違和感」はない場合が殆どです。 サーバー側の時刻はUTCが基本 一方でバックエンドのサービスなど、サーバー側は通常はUTC(Coordinated Universal Time:協定世界時)を使うのが普通です。理由は簡単で、サーバー側では世界中の色々な地域からアクセスされるため、 共通 の時刻を使わないと色々な不具合が起きるためです。 当然、バックエンドで利用するデータベースでもUTCを使うのが普通です。 UTCの時刻は基本的には、グリニッジ標準時(GMT)と同じ時刻として認識されています。色々調べると厳密には同じ時刻ではないようですが、実

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

イメージ
ホーム ブログ Firebase情報 Firebaseストレージのセキュリティルールはトリッキー!! 2020年10月29日 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ブラウザでいろいろな制限を受けています。 基本的にはWebブラウザが動いているデバイス(PCやスマホ)の他のファイルにはアクセスできません。ダウンロードはできますが、Webブラウザの

Firebaseのバックアップは?

イメージ
ホーム ブログ Firebase情報 Firebaseのバックアップは? 2020年10月28日 Firebaseのバックアップは? Firebaseを利用したプロジェクトはどうやってバックアップをするか気になりますよね? この記事は、Firebaseを利用したプロジェクトをどのようにバックアップをするかをまとめてみました。 Firebaseを利用したプロジェクトのバックアップと言っても利用している機能によって扱いが変わってきます。この記事では以下の機能に関するバックアップについてまとめています。 プロジェクトの登録ユーザー(Firebaseのアカウント) Firebaseのホスティングデータ Firebaseのデータベースのデータ(Cloud Firestore) Firebaseのストレージのデータ Firebaseのファンクション(Functions/バックエンドサービスのコード) プロジェクトの登録ユーザー(Firebaseのアカウント) FirebaseのプロジェクトのユーザはFirebaseが管理しています。Firebaseコンソールに行くとそのリストを見ることができます。 一つの方法は、そのリストから手作業でユーザーのリストを抜き出すことができます。 残念ながら、Firebaseのクライアント側のSDKからはこのリストにはアクセスできません。 プログラムで管理するには、Firebase Admin SDKを使って、管理用のツールをNode.jsのアプリとして作成する必要があります。 制限事項としては、パスワード情報にはアクセスできません。ユーザのリストやUID などを取得などに限定された情報のみになります。 Firebaseのホスティングデータ Firebaseのホスティングデータのデプロイメント(サイトの公開)は、公開するデータをFirebaseのプロジェクトフォルダーに入れて行う方式で行われます。 例えば、シンプルなHTMLファイルなどで構成されるサイ

FirebaseでReact Routerを使うには?

イメージ
ホーム ブログ Firebase情報 FirebaseでReact Routerを使うには? 2020年10月27日 FirebaseでReact Routerを使うには? FirebaseとReactという組み合わせは、Webアプリ、Webサービスを作る場合よく利用される組み合わせです。 Reactと合わせて利用される機能に React Router (react-router-dom) があります。これは、React内でページを切り替えるための機能の拡張ですが、実際のWebサイトのページを切り替える感覚で利用できるので便利な機能です。 例えば https://sv-sw.com/firebase のようにドメインに続いて「firebase」のように パス(Path) を指定すると、そのページがあるかの様に表示を切り替えてくれる機能です。 Reactのアプリのページは基本的に「1ページ」 よく、 1ページアプリ とも言われますが、実際にReactが使っているページは、通常は「 index.html 」だけです。Reactのプログラム内で、「firebase」というページ(のようなもの)を作った場合でも、実際のページは存在しません。 実は、この辺りが、実際にWebサーバーにReactアプリを公開しようとする場合(デプロイする場合)にちょっと混乱する部分です。 Webホスト(サーバー)が管理している「ルーティング」 元々は、Webサイトの全てのHTMLファイルはWebホスティングしているWebサーバーにおいてあって、ブラウザから要求されたファイルをWebホストが提供していました。最近のWebサイトは実際の ファイル がない場合も多く、 仮想ファイル をサーバーが判断してWebブラウザに提供しています。 サーバー側でのレンダリングの場合はサーバー側で指定されたパスの処理をしています。こうした、Webブラウザでドメインの後に指定されたパスに応じて必要な情報をWebブラウザに提