絞り込み条件を変更する
検索条件を絞り込む
有料ブログの投稿方法はこちら

すべてのカテゴリ

131 件中 1 - 60 件表示
カバー画像

Vue と Vite の環境変数で Firebase のプロジェクト情報を設定する!

Vue と Vite の環境変数で Firebase のプロジェクト情報を設定する!前回の記事では、環境変数の基本的な使い方を紹介しました。今回は、Firebase のプロジェクト情報を環境変数で扱う具体的な方法を紹介します。Firebase のプロジェクト情報Firebase を利用するには、Firebase のプロジェクト情報を使って、Firebase を使うための初期設定が必要になります。Vue や React などのフレームワークを利用する場合には、npmなどのパッケージマネージャを利用する場合が多いと思いますが、その場合は、Javascript で Firebase の初期設定を行う際に Firebase のプロジェクト情報を使います。直接コードに埋め込む事もできるので、プログラムを再利用したり配布したりしない場合にはこの方法でも問題ありません。しかし、プログラムを再利用したり、配布・公開する場合には、特定の Firebase の情報をそのまま拠有するのはセキュリティ上余り好ましい事ではありません。もちろん、フロントエンドから Firebase を利用する場合には、いずれにしてもプロジェクト情報はソースコードの一部になるので、Web ブラウザを利用すれば取得できるわけですが、それでも、プロジェクト情報は共有しない方が無難です。また、再利用する方でも、プログラムのコードを変更するよりは、環境変数として設定する方が、間違いも少なく安全です。環境変数を利用した Firebase の初期化のコードでは、早速 Firebase のプロジェクト情報を環境変数として設定する方法を紹
0
カバー画像

Firestoreを利用したブログサービスの実装例

Firestoreを利用したブログサービスの実装例この記事では、Firestore を利用して、投稿記事のメタデータを保存した場合の実装例を紹介します。今回紹介する方法では、投稿記事を表示する場合以外は、Firestore からメタデータを取得して表示するため、投稿数が多くなっても素早い記事の一覧表示が可能です。投稿記事の一覧の取得Firebase のデータベースである、Firestore から投稿記事のメタデータを取得します。 投稿記事のメタデータは、記事の投稿時に、Firestore のデータベースに保存して、オリジナルの Markdown のファイルは、Firebase のストレージに保存してある前提です。 メタデータを保存している Firestore のコレクションは「sample」です。import {  collection,  doc,  onSnapshot,  query,} from "firebase/firestore";import { db } from "../lib/firebase";getList() {      const my_query = query(collection(db, "sample"));      const unsub = onSnapshot(my_query, (query_snapshot) => {        this.docs = [];        for (let i = 0; i < query_snapshot.size; i++) {          const doc =
0
カバー画像

Markdown のメタデータを Firestore に保存する

Markdown のメタデータを Firestore に保存するMarkdown のメタデータを Firebase のデータベースに保存する方法の詳細を紹介します。基本的に同じファイル名のファイルは、Firebase のストレージの同じフォルダ内には存在しないので、Markdown のファイル名をキーにして、重複したデータを Firestore に保存しないようにする処理が必要になります。ポイントは重複を避ける事Markdown のメタデータを Firebase のデータベース Firestore に保存する場合に大切なポイントは、重複するデータのデータベースのエントリ(Firestore のドキュメント)を避ける事にあります。 Markdown で書かれたファイルを Firebase のストレージにアップロード(投稿)する場合、同じファイル名で何回かアップロード(投稿)するケースが発生します。例えば、原稿の中身を変更したりした場合には、同じファイル名で何回かアップロード(投稿)する事は当然あり得る操作になります。Firebase のストレージの場合、同じフォルダに同じファイル名でアップロードする場合、上書き保存をしてくれるので問題ではありません。しかし、Firestore のデータベースの場合、前回紹介した、「addDoc()」を使う場合、毎回新たなデータベースのエントリ(Firestore のドキュメント)を作成してしまいます。つまり、同じファイル名に対する Firestore のドキュメントが複数発生する状態が起きてしまうことになります。実際にはファイルは一つしかありませ
0
カバー画像

Firebase のデータベースで Markdown のメタデータを保存する

Firebase のデータベースで Markdown のメタデータを保存するMarkdown のメタデータを利用すると、ファイルの情報を簡単に取得できます。この情報を Firebase のデータベースに保存すると、一覧の表示を効率よく行う事が出来ます。この記事では、Firebase のデータベースである Firestore に Markdown のメタデータを保存する方法を紹介します。Firebase version 9同じような記事を以前にも投稿していますが、Firebase の API はVersion 8からVersion 9で大きく変更されています。 以前のVersion 8では、名前空間(ネームスペース)をベースにしたインターフェースが利用されていました。これがVersion 9からは、モジュール(modular)ベースに変更されています。現時点では、Version 8も利用可能ですが、新規の開発ではVersion 9を利用する事をお勧めします。従いまして、この記事では、Firebase のVersion 9ベースのインターフェースで紹介していきます。Firestore の基本構成Firebase のデータベースには、リアルタイムデータベース(Realtime database)と Firestore がありますが、この記事では、Firestore を利用する例を紹介しています。 Firestore のデータベースは、コレクション(collection)とドキュメント(document)で構成されています。コレクションはドキュメントを入れる箱の様なイメージで、ドキュメ
0
カバー画像

Vue を使って Firebase ストレージのファイルを表示する

Vue を使って Firebase ストレージのファイルを表示する前回は Firebase のストレージの特定のフォルダに保存されているファイルの一覧を Vue を利用して表示する方法を紹介しました。この記事では、表示されたファイルの中から選択されたファイルの中身を表示する方法を紹介します。Firebase ストレージのファイルにアクセスするにはFirebase ストレージの機能の一部として、保存されているファイルのリンク(URL)を取得する機能がサポートされています。リンク(URL)がわかると、Javascript の基本機能「fetch()」を使えばファイルの中身を取得することができます。したがって、Firebase ストレージに保存されているファイルの中身を表示するには、以下の手順が必要になります。1. ファイルを選択する2. 選択したファイルのリンク(URL)を取得3. 取得したリンク(URL)を使ってファイルの中身を取得4. 取得したファイルの中身を表示の四つのステップです。ファイルを選択するには?いろいろなやり方がありますが、クリックされた場合の処理を行う関数に、「file」を渡してしまうのが簡単な方法です。前回の「src/views/HomeView.vue」に記述の追加を行います。<template>  <div>    <h1>HTML view</h1>    <div class="file-list">      <ul v-for="file in list.files" :key="f
0
カバー画像

Vue を使ってFirebaseのストレージにファイルを保存する

Vue を使ってFirebaseのストレージにファイルを保存するVue を使って Firebase のストレージにファイルを保存する前回の記事では、Vue でページ毎にアクセスの権限を使い分けるやり方を紹介しました。今回は、前回の実装を少し発展させて、「管理者モード」を考えてみます。この記事では、Firebase のストレージに管理者としてファイルをアップロードする方法を紹介します。管理者モードの利用例まずは、管理者モードで何をするかの例を紹介します。 例えば、ブログサービスを提供する事を考えた場合には、ブログの記事を投稿する機能と、投稿された記事を閲覧する機能が必要になります。この場合、ブログの記事を投稿するのは基本的にブログサービスの「管理者」が投稿するという形になります。この場合、管理者は「特定の利用者」になって、閲覧者(一般の利用者)は、それ以外の利用者というように分ける事ができます。この記事では、まずは、ファイルをインターネットのサーバーに保存する方法を紹介します。Firebase のストレージ機能を使うインターネットにファイルを保存するには、「保存する場所」が必要になります。今回は、この場所として Firebase のストレージ機能を利用する事にします。前回までに、Firebase のプロジェクトを作成しているので今回は Firebase のストレージ機能を新たに有効にします。これは、Firebase コンソールから可能です。最初はインターネット上に公開せずにテストするので、「テストモード」を選択すれば、当面はセキュリティールールを設定しないでも基本的なテストが可能
0
カバー画像

Firebase のログイン機能の設定

Firebase のログイン機能の設定前回は、Vue と Firebase を利用してログイン機能を実装する方法を紹介しました。今回は、Firebase 側のもう少し詳しい設定について紹介します。Firebase のログイン機能Firebase のログイン機能については、前回の記事では簡単に触れただけでした。どちらかというと、Vue の記述方法を中心に紹介したので、今回は、Firebase のログイン機能を中心に紹介します。Firebase はデータベースやオンラインストレージなどいろいろな機能を提供しています。本来は、Web サーバー側でサポートする機能を簡単なインターフェースで利用できるようにしているのが便利な点です。その中の機能の一つがログイン(ユーザー認証)機能です。このログイン機能もいくつかの方法が提供されてます。シンプルに、E-Mail アドレスとパスワードでユーザー管理する方法から、メジャーなインターネットのサービス、Google や Facebook といったサービスのユーザー認証(ログイン)を通して、利用者を特定する方法、携帯の電話番号を利用する方法など、必要に応じて選べるようになっています。Firebase の利用には、Google のアカウントが必要です。この連載でも、何度か紹介していますが、Firebase を利用するにはまずは Google にアカウントを作成してください!Firebase コンソールFirebase の各種設定をするには、基本的にFirebase コンソールを利用します。「コンソール」といっていますが、要は Web サイトです。このサ
0
カバー画像

VueとFirebaseを使ってログイン機能を作るには?

VueとFirebaseを使ってログイン機能を作るには?Vue の基本を一通り学習したところで少し実践的な実装例を紹介します。この記事では、Firebase のユーザー認証機能を利用して、ログイン機能を Vue で作成する例を紹介します。Vue のプロジェクトを作成今回は、Vue Router や Pinia などを使わずにシンプルに、ホームページを表示するという簡単な例にしてみました。簡単に実装内容を説明すると:* ログインしていない場合は、ログインフォームを表示* ログインしている場合には、「Home.vue」を表示 という仕様にします。ログインフォームは再利用できるように「部品化」します。「src/App.vue」で表示の切り替えをするようにします。 「src/components/LoginForm.vue」でログインに必要な情報を入力するフォームを作成します。「src/view/Home.vue」がホームページになります。まずは、サンプルプロジェクトを作成します。$ npm init vueVue.js - The Progressive JavaScript Framework✔ Project name: … vue-firebase-sample✔ Add TypeScript? … No / Yes✔ Add JSX Support? … No / Yes✔ Add Vue Router for Single Page Application development? … No / Yes✔ Add Pinia for state management? …
0
カバー画像

Vue Router を使ったプロジェクトを Firebase で公開するには?

Vue Router を使ったプロジェクトを Firebase で公開するには?Vue Router は Vue を使った Web アプリで、ページ毎に表示を切り替える場合に利用されます。ところが、設定によっては、「ページが見つからない」(404エラー)になる場合があります。原因は、Web サイトのページの切り替え(ルーティング)にあります。この記事では、Firebase を利用して、Vue Router を利用した、Vue アプリを公開する方法を紹介しています。ルーティングの仕組みWeb サイトで表示するページを切り替える仕組みを「ルーティング」と呼んでいます。 簡単にいうと、Web ブラウザで指定したリンク(URL)によって、表示を切り替える事ができますが、この切り替えの仕組みをルーティングと呼んでいます。 この「切り替え」を行なっているのは、通常の Web サイトでは、Web サイトの情報を持っているサーバー(Web サーバー)が行なっています。Web ブラウザは、指定されたリンク(URL)を Web サーバーに送って、表示する情報を Web サーバーから受け取って表示をしています。Vue の表示の仕組みVue は「フロントエンドのフレームワーク」の一つで、「Web ブラウザで表示を管理する仕組み」です。 一般的に Vue で作成した Web アプリをインターネットで公開する場合には、Viteを使って Vue のプロジェクトを作成した場合には以下のコマンドを実行して公開用の情報(イメージ)を作成します。 (*)この連載では、Viteを Vue のサンプルプロジェクト(テン
0
カバー画像

Vue のプロジェクトをインターネットで公開する

Vue のプロジェクトをインターネットで公開するVue を利用して開発した、Web アプリをインターネット上で公開するための方法として、Firebase を利用する方法を紹介します。Web アプリをインターネットで公開するにはVue で作成するアプリは、基本的に Web ブラウザ上で動作します。開発中は、開発で使っている PC で仮の「Web サーバー」を動かして動作の確認を行うのが普通です。 しかし、この開発した Web アプリをインターネット上で公開するには、この Vue で開発したアプリをインターネットからアクセスできるサーバーにコピーする必要があります。 こうしたサービスを「Web ホスティングサービス」と呼んでいますが、色々なサービスがあって、初心者には迷う部分が大きい部分です。この記事では、色々ある Web ホスティングサービスの中から、「Firebase」のサービスを利用して Web アプリを公開する方法を紹介します。Firebase のサービスとは?Firebase は Google が提供している、インターネットのサービスの一つで、Web ホスティングの他にもログイン機能(ユーザー認証機能)や、データベース、オンラインストレージなど色々なサービスを提供しています。便利なのは、Google のアカウントを持っていれば誰でも利用できる事に加えて、一定の利用量(アクセスの数や利用しているファイルの容量など)が一定量以下の場合には、無料で利用できる所です。したがって、初めて Web アプリを提供する場合の多くは、アクセス数や利用量は無料枠内に収まる場合が殆どなので、F
0
カバー画像

Firebase v9で書き方が変わった!

Firebase v9で書き方が変わった!久々に Firebase の話題です。Firebase の最新バージョンは少し前から v9.x になっています。実は v9 から大きな変更が入っています。v8 までは、Name space をベースにしたインターフェースでしたが、v9 からはモジュールベースに変更されています。以前のコードは基本的に、そのままでは、v9 では使えません。この記事では Firebase の v9 の概要について紹介します。v 9以前の Firebase の問題点Firebase は、Web アプリや Web サービスで必要になる事の多い、バックエンドのサービスを提供する仕組みの一つです。Firebase を利用すると、自分でバックエンドのサービスを開発しなくても、データベースやオンラインストレージなどの利用が可能になるので手軽に本格的なアプリを開発できるという点で便利な物でした。従来の Firebase のパッケージは、サイズが大きく読み込みに時間がかかるという欠点がありました。と言っても、殆どの場合は、問題という程顕著な問題ではありませんでした。ただ、一部でそうした欠点を指摘されていたこともあって、v9 からはモジュール形式の実装に変更されています。 変わった点は、モジュール形式に変更された点で、必要なモジュールを必要な場所で読み込む方法に変わりました。これによって、読み込みに必要な時間が短縮され、読み込むサイズも最適化されました。ようは必要でないパッケージは読み込まなくても良くなりました。以前のスタイルで開発したコードは?基本的に、Firebase の
0
カバー画像

短期間で Web アプリを作れるようになるには?

短期間で Web アプリを作れるようになるには?プログラミングの学習を始めてどれくらいで Web アプリが作れるようになるかという質問をよく頂きます。どんな Web アプリを作るかにもよりますが、シンプルな Web アプリならば 1 ヶ月の勉強でも十分に可能です。この記事では、プログラミングの学習を始めて 1 ヶ月で Web アプリを作るための方針について考えてみました。(*)この記事は、Windows10 で開発を行うことを想定して書いています。Mac や Linux でも基本的には同じですが、利用するコマンドや、ダウンロードするファイルなどが若干異なります。シンプルにする事が重要1 ヶ月という限られた時間で Web アプリを作るには、シンプルにする事がとても重要です。 ここで言う Web アプリは、商品として販売するようなアプリではなく、機能を優先したアプリという前提にします。 商品としてお金を頂いて提供する場合には、見かけも重要ですし、十分なテストも必要です。勿論、これらを含めた上で 1 ヶ月で完成させることも可能ですが、まずは欲張らずにアプリの機能を実現して、最低限の見栄えのアプリを作る事にします。Web アプリのコーディングをするのに必要な物は:* HTML* CSS* Javascriptです。1 ヶ月で Web アプリを作るために、必要最低限の学習に集中する事が必要になります。そこで、最初は「CSS」は無視して考えます。 基本的に、CSS は HTML で記述された Web ページの体裁を整えたりするのに使用します。実際は、体裁以外にもいろいろできますが、最初は体
0
カバー画像

Firebase に保存したブログ記事のメタデータの活用

Firebase に保存したブログ記事のメタデータの活用Firebase に保存したブログ記事を管理する際にメタデータを活用すると効率的で便利なサービスが実現できます。この記事ではメタデータの活用例を紹介します。メタデータとは簡単にいうと、おまけのデータです。おまけと言っても価値の高いデータで、ブログの記事の場合は、「記事に関するデータの概要」の様な位置付けのデータの事をこのように呼んでいます。 単に記事を保存するだけではなく、記事の概要がわかるデータと一緒に保存することで記事の利用がよりやりやすくなる利点があります。既に紹介していますが、記事の一覧を表示する際に、単にファイルの名前を表示するより、その記事のタイトルや概要を一緒に表示することで、一覧を見るだけで各記事の概要がわかると利用者は見たい情報を効率よく見つけることができます。また、検索のためのキーワードなどをメタデータに入れておくことで、記事全体を探さなくても効率的に興味がありそうな記事を特定するのにも役立ちます。どこにメタデータを保存するか?では、メタデータをどこに保存するかが気になりますよね? 実は、Firebase のストレージにファイルを保存する際に、メタデータを一緒に Firebase のストレージのファイルのデータと一緒に保存する事ができます。Firebase がこうしたメタデータをファイルの情報と関連づけて保存してくれるので、ここからメタデータを取り出すことが可能です。この機能は便利な機能ですが、Firebase のストレージに保存されているファイルという前提条件で利用が可能という制限がついています。Fi
0
カバー画像

ブログサービスの管理機能と一般機能の違い

ブログサービスの管理機能と一般機能の違いFirebase のストレージからファイルの一覧を取得する機能について考える場合、管理機能として利用する場合と、一般の利用者が利用する場合では作り方を変えた方が良い場合があります。この記事では、機能の実装のポイントについて利用者の立場で考えた例を紹介します。同じ機能でも色々ある実装方法プログラミングでは、同じ機能でもその実現方法(実装方法)は一つではなく、いくつかの方法がある場合が殆どです。その場合どの実現方法が一番いいのか迷う場合も多いと思います。難しいのは、同じ機能でもベストな方法は同じでは無い場合が多く何を基準に選んだら良いか迷ってしまう点にあるかと思います。今回は、Firebase のストレージとデータベース(Cloud Firestore)を利用してブログサービスを作成した場合について考えてみます。 その中でも、Firebase のストレージに保存されているファイルの一覧を表示する機能について検討した例を紹介します。前提として、ブログの記事を、Firebase のストレージにアップロードして、その記事を Web ブラウザで表示するようなサービスを考えます。ブログサービスの基本機能については既に概要を紹介しているので基本的な仕組みについてはそちらをご覧ください。この記事でもファイルの一覧表示について紹介しています。別の記事では、Firebase のストレージに保存しているファイル情報を Firegbase のデータベースにも保存して、通常はそちらからデータを取得する用法を紹介しています。以前の記事で紹介していますが、Firebas
0
カバー画像

Firebase を使ったサービスの管理アプリを Electron で作る!

Firebase を使ったサービスの管理アプリを Electron で作る!Firebase のストレージとデータベースの機能を利用して Web サイトを利用する際に必要になる管理用のアプリを Electron を利用して作成する方法を紹介します。どうて Electron を使うのか?Firebase の機能を利用したサービスを作る場合、管理用の機能が必要になる場合がたくさんあります。 管理用のためのアクセスと一般の利用者のアクセスは違う場合が多く、管理用のアクセスではサイトに記事を投稿したり、投稿の変更(修正)をしたり、不要な記事を削除するなど、通常の利用者とは違う操作が必要になります。これを行うのは限られた利用者(ユーザー)のみで、この権限を悪用されるとサイトの内容が改変されたりしてセキュリティ上の問題となります。もちろん特定のユーザーとしてユーザー認証(ログイン)したユーザのみの利用にすることは言うまでもありません。しかし、パスワードが破られるとアクセスが可能になってしまいます。完全なセキュリティ対策は無いものの、もう少し高いセキュリティを考えると、管理用の機能はインターネットに公開しないと言う対策は一つの方法です。つまり、インターネットではなく管理用の PC にアプリを入れて管理するという方法の方がより安全ということになります。インターネットから管理できる方が便利ですが、安全を優先する場合にはデスクトップアプリの方が良いということになります。そこで、デスクトップアプリを Electron を利用して作る方法を取り上げてみました。Electron の正体は何か?ここで E
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 のセキュリティルールで指定する場所について紹介します。何故「場所」が面倒なのか?面倒な理由は、「場所」の範囲を特定できないからです。 人の場合は、ログイン名(Firebase の場合基本は E-Mail アドレス)や UID(ユーザー ID)で特定できます。出来ることも、基本は読み込みと書き込みで、全部挙げるのは簡単です。つまり、比較的簡単に特定できて指定可能なので殆どの場合問題になりません。しかし、アクセスを許される「場所」の場合は、範囲の特定が難しいので面倒になります。復習を兼ねて人を指定する場合の基本は:* 特定の E-Mail アドレスか UID(E-Mail や UID が一致する利用者)* ログインしているかしていないか出来ることの場合は、* 読み込みが出来るか* 書き込みが出来るか(新規作成できるか、データの更新ができるか、削除できるか)基本的にこれだけです。ところが場所の場合は、シンプルにいかないケースがあるので面倒ということです。ブログサービスの場合は簡単!場所の指定も、ブログサービスの場合は実はシンプルです。 前回の記事で紹介した通り、利用者は、「サイトの運営者(管
0
カバー画像

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

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

ブログの原稿に Markdown は便利

ブログの原稿に Markdown は便利Firebase ストレージを利用したブログサービスでは、Firebase ストレージに投稿したブログの投稿を表示する仕組みにしています。Web ブラウザで表示させるには、HTML が便利ですが、Markdown は更に便利な記述方法です。この記事では、Markdown を利用したブログの記事作成について紹介します。Markdown とは?Markdown は、GitHub のドキュメントなどでも利用されている、簡易型のマークアップ言語で生の原稿でも HTML などに比べると読みやすく、原稿の作成も簡単にできます。Markdown の記述から簡単に HTML に変換するためのモジュールも各種プログラミング言語で作成されているので、HTML で記述するより応用範囲が広く、今回紹介するブログサービスで利用することにしました。前回までに、HTML で Firebase ストレージに投稿したブログの記事を読み込んで表示させるまでを紹介しましたが、簡単な変更で Markdown で投稿した記事を HTML に変換できるので、ほぼ同じ仕組みで Markdown の投稿をサポートする事ができます。便利なのは、プログラムなどを引用するのも、簡単にできる点です。 HTML の場合、HTML で利用している文字は別の文字列に変換するする必要があるなど、プログラムを HTML の記述に埋め込むには少し手間がかかります。「<」や「>」などは良い例です。Markdown ならばほぼコピー&ペーストで済みます。Markdown を HTML に変換するに
0
カバー画像

選択した HTML ファイルを表示するには?

選択した HTML ファイルを表示するには?Firebase のストレージに投稿したブログの原稿の一覧から選択した記事を表示する方法を紹介します。今回は、HTML 形式のファイルを投稿して、それを表示する方法を紹介します。ブラウザが表示できるのは HTML 形式が基本!Web ブラウザで表示する場合には、基本は HTML 形式のファイルが一番簡単に表示できます。 この記事では、まず HTML 形式のファイルを Firebase のストレージに投稿して、その一覧を表示して、その中から選択したファイルを表示する事を目標にします。まずは前提条件として、ファイルの一覧をテーブルに表示してファイルを選択できるようにしているとします。 UI の記述例は、このような形でテーブル一覧を表示します。 「files」が、Firebase ストレージの「リファレンス」の配列です。<table className="table table-hover">  <thead className="table table-dark">    <tr>      <th>File Name</th>      <th></th>    </tr>  </thead>  <tbody>    {folders.map((file: firebase.storage.Reference) => (      <tr key={file.name}>        <td&
0
カバー画像

投稿した記事の一覧を表示するには?

投稿した記事の一覧を表示するには?ブログの記事を Firebase のストレージに投稿する方法を紹介しました。この記事では、Firebase のストーレージに投稿した記事の一覧を表示する方法を紹介します。Firebase のストレージの機能を使うFirebase のストレージのフォルダに投稿した、ブログの記事の原稿の一覧を表示するには、Firebase のストレージの機能を使うと簡単に実現できます。こうした、機能は Firebase のストレージの標準機能として予め準備されているので、特別に自分でコードを書く必要はありません。Firebase のストレージの機能を使ってフォルダのファイルの一覧を表示するプログラムの例です。export interface StorageList {  folders: Array<firebase.storage.Reference>;  files: Array<firebase.storage.Reference>;}export function listAllFiles(path: string): Promise<StorageList | undefined> {  return new Promise((resolve) => {    const storageRef: firebase.storage.Reference = firebase      .storage()      .ref()      .child(path);    storageRef      .listA
0
カバー画像

React と Firebase でブログサービス〜ファイルのアップロード編

React と Firebase でブログサービス〜ファイルのアップロード編React と Firebase を組み合わせて利用する例として、ブログサービスを作ってみる事にしました。一度に全部紹介するのは難しいので連載という形で紹介していきます。最初は、ブログの記事をインターネット上にアップロードする機能から紹介していきます。まず最初は投稿の機能ブログサービスで必要になる機能に、記事を投稿する機能が必要になります。 今回は、ブログの記事の原稿となるファイルをインターネットにアップロードする機能について紹介します。 Firebase を利用する場合、データベースに記事を保存する方法もありますが、今回は記事の原稿のファイルそのものを Firebase のストレージに保存する方法を採用しようと考えています。どのようなファイルをブログの原稿にするかを決める必要がありますが、まずは、ファイルを Firebase のストレージに保存する機能が必要です。この記事では、Firebase のストレージにファイルを指定したファイルをアップロードする機能について考えてみました。ファイルの指定まずは、アップロードするファイルを選択する機能が必要です。 ファイルを選択するフォームを作成します。HTML の「input」タグを使ってファイルを選択して、ファイルをアップロードする処理を呼び出すような UI です。 ファイルは、Firebase ストレージの「test」というフォルダの下にアップロードするようになっています。(post.tsx)の例export default () => {  retu
0
カバー画像

React Router で良く起きる問題! 〜 ページがない!

React Router で良く起きる問題! 〜 ページがない!React Router を利用すると、React で作成したアプリを複数のページで構成する Web サイトとして構成することができます。しかし、実際に Web サーバーで公開すると「ページがない!」というエラーが発生する場合があります。一体何が起きているのでしょう?React Router は何をしているのか?React Router は一体何をやっているのでしょうか? React Router は、React の拡張機能で、Web ブラウザでページの URL を指定すると、別のページがあるように表示できる機能です。この時、どのページを表示するかを決めているのは実は React が作った、Javascript のコードでページを作っています。ところが、この処理を普通は Web サーバーが行なっています。通常は、Web サーバーが Web ブラウザが指定された URL をもとに Web サーバーにリクエストを送って、Web サーバーがどの表示するかを決めて Web ブラウザに表示するページを送っています。このどのページを表示するかを決める処理を「ルーティング」と呼んでいます。サーバーにはページがない!React で React Router を使って利用している場合には、React が表示するページを作って、index.htmlに表示させています。つまり、「サーバーにはそのページはない」のでエラーになります。でも、React の開発用のサーバーを「npm start」で起動して動かすと問題なく動きます。 これは、R
0
カバー画像

Firebase で React アプリをホスティングする

Firebase で React アプリをホスティングするFirebase のホスティングを利用して、作成した Web ページをインターネットに公開する方法は既に紹介しています。この記事では、React で作成したアプリを Firebase のホスティング機能を利用してインターネットに公開する具体的な方法を紹介しています。npm を利用して、React で開発する場合、「create-react-app」のスクリプトを利用して React のプロジェクトを作成すると、自動的に React のサンプルアプリを作成してくれます。このサンプルアプリには、公開用のイメージを作成するスクリプトが既に用意されているので、このスクリプトを利用して公開用のイメージを作成するだけで、あとは基本的な Firebase の管理コマンドを実行すれば、インターネットに簡単に公開できます。React アプリのサンプルプロジェクトを作成最初に React アプリのサンプルプロジェクト(テンプレート)を作成します。プロジェクトの作成には、「create-react-app」をインストールする必要があります。インストールしていない場合は、最初にインストールを行います。React を利用していろいろなアプリを開発する場合、頻繁に利用するので、システムレベルのインストールをすることをお勧めします。$ sudo npm install -g create-react-app (*) Windows の場合は「sudo」は不要です。「npm install -g create-react-app」でインストールします。
0
カバー画像

Firebase ホスティングはプログラミングとの相性も抜群です!

Firebase ホスティングはプログラミングとの相性も抜群です!Firebase ホスティングは、LP との相性が良いことは既に紹介しましたが、勿論プログラミングとの相性も抜群です。Firebase の他の機能である、データベースやストレージと組み合わせて、React や Vue といったフロントエンドのフレームワークと組み合わせれば本格的な Web アプリケーションを短期間で開発する事が可能です。Firebase の他の機能との連携を考えると、一番相性が良いのは Web アプリケーションという事になります。React や Vue と連携する!React や Vue はフロントエンドのフレームワークと呼ばれる仕組みで、Web ブラウザで動作する UI などを作成するのに適した仕組みです。HTML/CSS と Javascript を組み合わせれば、特にフレームワークを利用しなくても Web アプリケーションを作成することは可能です。しかし、React や Vue などのフレームワークを利用すると、より効率的に UI を開発することができるので便利です。一方で、実際のデータなどの処理は Javascript で書くことになりますが、データを保存する必要がある場合は、通常は Web サーバー側で用意したデータベースなどを利用する必要があります。WordPress の場合は、Web サーバー側で、PHP のバックエンドサービスと、SQL データベースを利用してこうした機能を提供する仕組みになっています。Firebase を利用すると、こうしたバックエンドのサービスの機能やデータベー
0
カバー画像

Firebase のホスティングの使い方がわかるとビジネスになります!

Firebase のホスティングの使い方がわかるとビジネスになります!Firebase のホスティングの使い方が見えてくると、それを活用したビジネスモ可能になります。 この記事では、Firebase のホスティングをビジネスに活用する例について紹介します。Firebase のホスティング機能を LP に活用する前回の記事で、Firebase のホスティングと相性の良い利用法の一つに LP(ランディングページ)のホスティングに理容できる事を紹介しました。LP(ランディングページ))は、集客や販売に利用される場合が多く、商品の販売のためのセールスレターやイベントの参加者の募集などを含めて、インターネットを利用したマーケティングに広く利用されている Web ページの活用方法です。広告や SNS から LP(ランディングページ)にリンクを貼って、興味がありそうな人を集めて、商品やイベントの紹介などセールスや集客のための内容を提供して、販売や集客に繋げるための仕組みです。利用の仕方は、いろいろありますが、販売促進期間やイベントに合わせて一時的に LP(ランディングページ)を利用する場合もあれば、常に商品販売のページとして利用する場合もあって利用形態はいろいろです。既に、販売は集客の仕組みを持っている方の場合は、集客やセールスの一環として利用されている場合も多くなっています。 しかし、一方で、フリーランスとして個人でビジネスを立ち上げたばかりの場合には、こうした仕組みがまだ完成していない場合も多く、LP(ランディングページ)制作は一定の需要があります。技術的には簡単にできる LP!LP(ラ
0
カバー画像

Firebase ホスティングを何に使うか?

Firebase ホスティングを何に使うか?Firebase のホスティング機能を使えば簡単に Web サイト(Web ページ)をインターネットに公開できます。では、どのような使い方が良いでしょうか?この記事では、Firebase のホスティング機能の利用例を紹介してみました。魅力は無料から始められる Web サイト!Firebase のホスティング機能を利用した Web サイト(Web ページ)の一番の魅力は「無料から始められる」点ではないでしょうか?もちろん、利用する容量が極端に大きかったり、アクセスが爆発的に多い Web サイトの場合は、利用料金が発生します。しかし、殆どのケースでは、少なくても最初は無料の範囲内で利用可能です。しかも、特別な契約をする必要もないので、手軽に Web サイトを立ち上げることもできるのも大きな魅力です。Firebase 側が広告を入れたりしないのも魅力です。無料で利用可能な Web サイトはホスティングサービスを提供する側が広告を入れて、そこから収入も得る場合が多いですが、Firebase は自分で広告を入れない限りは、無料でも広告なしでサイト運営が可能です。また、ご自分でドメインを所有している場合は、自分のドメインを使ったサイトとして運営することもできるのも大きな魅力です。良い事ばかりではありません。。。Firebase のホスティング機能は良いことずくめのような感じもしますが、良いことばかりではありません。 Firebase のホスティングの場合は、自分で、HTML や CSS を書いて Web サイトを構成する必要があります。もちろん、
0
カバー画像

シンプルな Web サイトの作り方

シンプルな Web サイトの作り方シンプルな Web サイトは Firebase のホスティング機能を利用すると簡単に作成できます。HTML と CSS で必要なページを作成して公開する方法です。各ページの中身(コンテンツ)を作成すれば、簡単にインターネットで公開で s きます。この Web サイトの作成に必要なのは以下の項目です* 基本的な HTML と CSS の記述方法* Google アカウント(Firebase を利用するには Google アカウントが必要です)* Web サイト作成用の PC(Windows/Mac/Linux)* インターネットアクセス費用は基本的に無料ですFirebase プロジェクトの作成Firebase のホスティング機能を利用して公開するので、Firebase のプロジェクトを作成する必要があります。 Firebase は Google が提供するサービスで利用するためには、Google アカウントが必要です。 まだ、Google アカウントをお持ちでない場合は、最初に Google アカウントを作成してください。Google アカウントはこちらのサイトから作成できます。Google のアカウントの準備ができららFirebase コンソールにアクセスします。Firebase の利用が初めての場合は、以下のような画面が現れますので、「_Create a project_」をクリッ