Firebase-quick-guide
Firebase-概要
Firebaseの公式ドキュメントによると-
'__Firebaseは、データストレージ、ユーザー認証、静的ホスティングなどを含むアプリのバックエンドを強化できます。 並外れたユーザーエクスペリエンスの作成に焦点を当てます。 残りは私たちが処理します。 Android、iOS、およびJavaScript SDKを使用して、クロスプラットフォームのネイティブモバイルおよびWebアプリを構築します。 サーバーサイドライブラリまたはREST APIを使用して、Firebaseを既存のバックエンドに接続することもできます。_
Firebaseの機能
- リアルタイムデータベース-FirebaseはJSONデータをサポートし、それに接続するすべてのユーザーは変更のたびにライブアップデートを受け取ります。
- 認証-匿名、パスワード、またはさまざまなソーシャル認証を使用できます。
- ホスティング-アプリケーションは、Firebaseサーバーへの安全な接続を介して展開できます。
Firebaseの利点
- シンプルで使いやすいです。 複雑な構成は必要ありません。
- データはリアルタイムです。つまり、すべての変更が接続されたクライアントを自動的に更新します。
- Firebaseはシンプルなコントロールダッシュボードを提供します。
- 選択できる便利なサービスがいくつかあります。
Firebaseの制限
- Firebaseの無料プランは、50接続と100 MBのストレージに制限されています。
次の章では、Firebaseの環境設定について説明します。
Firebase-環境設定
この章では、Firebaseを既存のアプリケーションに追加する方法を示します。 NodeJS が必要です。 まだお持ちでない場合は、次の表のリンクを確認してください。
Sr.No. | Software & Description |
---|---|
1 |
NodeJS and NPM NodeJSは、Firebase開発に必要なプラットフォームです。 リンク:/nodejs/nodejs_environment_setup [NodeJS Environment Setup]を確認してください。 |
ステップ1-Firebaseアカウントを作成する
Firebaseアカウントはhttps://www.firebase.com/[こちら]で作成できます。
ステップ2-Firebaseアプリを作成する
ダッシュボードページから新しいアプリを作成できます。 次の画像は、作成したアプリを示しています。 [アプリの管理]ボタンをクリックして、アプリを入力できます。
ステップ3a-基本的なHTML/jsアプリを作成する
アプリを配置するフォルダーを作成するだけです。 そのフォルダー内に、 indexl および index.js ファイルが必要です。 Firebaseをアプリのヘッダーに追加します。
インデックス
ステップ3b-NPMまたはBowerを使用する
既存のアプリを使用する場合は、Firebase NPMまたはBowersパッケージを使用できます。 アプリのルートフォルダーから次のコマンドのいずれかを実行します。
Firebase-データ
FirebaseデータはJSONオブジェクトを表しています。 Firebaseダッシュボードからアプリを開く場合、 + 記号をクリックして、データを手動で追加できます。
単純なデータ構造を作成します。 以下の画像を確認できます。
前の章では、Firebaseをアプリに接続しました。 これで、Firebaseをコンソールに記録できます。
プレーヤーのコレクションへの参照を作成できます。
コンソールで次の結果を確認できます。
Firebase-配列
この章では、Firebaseの配列表現について説明します。 前の章と同じデータを使用します。
次のJSONツリーをプレーヤーのコレクションに送信することにより、このデータを作成できます。
これは、Firebaseが配列を直接サポートしていないため、キー名として整数を持つオブジェクトのリストを作成するためです。
配列を使用しない理由は、Firebaseがリアルタイムデータベースとして機能し、数人のユーザーが同時に配列を操作すると、配列インデックスが絶えず変化するため、結果が問題になる可能性があるためです。
Firebaseによる処理方法では、キー(インデックス)は常に同じままです。 john を削除しても、 amanda にはキー(インデックス)1が残っています。
Firebase-データの書き込み
この章では、Firebaseにデータを保存する方法を示します。
Set
次の結果が表示されます。
更新
同様の方法でFirebaseデータを更新できます。 players/john パスの使用方法に注目してください。
アプリを更新すると、Firebaseデータが更新されていることがわかります。
Firebase-リストデータの書き込み
最後の章では、Firebaseでデータを書き込む方法を示しました。 データの一意の識別子が必要な場合があります。 データに一意の識別子を作成する場合は、setメソッドの代わりにpushメソッドを使用する必要があります。
プッシュ方式
- push()*メソッドは、データがプッシュされるときに一意のIDを作成します。 前の章から一意のIDを使用してプレーヤーを作成する場合、以下のコードスニペットを使用できます。
これで、データの見た目が変わります。 名前は、他のプロパティと同様に名前と値のペアになります。
キーメソッド
- key()*メソッドを使用して、Firebaseから任意のキーを取得できます。 たとえば、コレクション名を取得する場合、次のスニペットを使用できます。
コンソールは、コレクション名(プレイヤー)を記録します。
これについては、次の章で詳しく説明します。
Firebase-トランザクションデータの書き込み
トランザクションデータは、データベースからデータを返し、それを使用して計算を行い、保存する必要がある場合に使用されます。
プレイヤーリスト内にプレイヤーが1人いるとします。
Firebase Write Transactional Data Start
プロパティを取得し、1歳を追加してFirebaseに返します。
このコードを実行すると、年齢の値が 21 に更新されていることがわかります。
Firebase Write Transactional Data Update
Firebase-データの読み取り
この章では、Firebaseデータの読み取り方法を示します。 次の画像は、読み取りたいデータを示しています。
- on()メソッドを使用してデータを取得できます。 このメソッドは、イベントタイプを *"値" として取得し、データの*スナップショット*を取得します。 スナップショットに* val()*メソッドを追加すると、データのJavaScript表現が取得されます。
例
次の例を考えてみましょう。
次のコードを実行すると、コンソールにデータが表示されます。
次の章では、データの読み取りに使用できる他のイベントタイプについて説明します。
Firebase-イベントタイプ
Firebaseは、データを読み取るためのいくつかの異なるイベントタイプを提供します。 最も一般的に使用されるもののいくつかを以下に説明します。
値
最初のイベントタイプは*値*です。 前の章で、値の使用方法を示しました。 このイベントタイプは、データが変更されるたびにトリガーされ、子を含むすべてのデータを取得します。
child_added
このイベントタイプは、すべてのプレーヤーに対して1回、新しいプレーヤーがデータに追加されるたびにトリガーされます。 リストから追加されたプレーヤーと前のプレーヤーにアクセスできるため、リストデータの読み取りに役立ちます。
例
次の例を考えてみましょう。
次の結果が得られます。
Bobという名前の新しいプレーヤーを追加すると、更新されたデータが取得されます。
child_changed
このイベントタイプは、データが変更されたときにトリガーされます。
例
次の例を考えてみましょう。
Firebaseで Bob を Maria に変更して、更新を取得できます。
child_removed
削除されたデータにアクセスしたい場合は、 child_removed イベントタイプを使用できます。
例
これで、FirebaseからMariaを削除して通知を取得できます。
Firebase-コールバックの切り離し
この章では、Firebaseでコールバックをデタッチする方法を示します。
イベントタイプのコールバックを切断する
例
- off()メソッドを使用する必要があります。 これにより、 *value イベントタイプのコールバックがすべて削除されます。
すべてのコールバックを切り離す
すべてのコールバックをデタッチしたいときは、次を使用できます-
Firebase-クエリ
Firebaseは、データを順序付けるさまざまな方法を提供します。 この章では、簡単なクエリの例を示します。 前の章と同じデータを使用します。
子供による注文
データを名前順に並べ替えるには、次のコードを使用できます。
例
次の例を考えてみましょう。
名前はアルファベット順に表示されます。
Firebase Queries Order By Child
キーで注文
同様の方法でキーごとにデータを注文できます。
例
次の例を考えてみましょう。
出力は次のようになります。
値順
データを値で並べ替えることもできます。 Firebaseに評価コレクションを追加しましょう。
これで、各プレーヤーの値でデータを注文できます。
例
次の例を考えてみましょう。
出力は次のようになります。
Firebase-データのフィルタリング
Firebaseには、データをフィルタリングするいくつかの方法があります。
最初と最後に制限
最初と最後の制限について理解しましょう。
- limitToFirst メソッドは、最初のアイテムから始まる指定された数のアイテムを返します。
- limitToLast メソッドは、最後の項目から始まる指定された数の項目を返します。
この例は、これがどのように機能するかを示しています。 データベースには2人のプレーヤーしかないため、クエリを1人のプレーヤーに制限します。
例
次の例を考えてみましょう。
コンソールは、最初のクエリから最初のプレーヤーを記録し、2番目のクエリから最後のプレーヤーを記録します。
Firebase Filtering Data Limit to First Last
その他のフィルター
他のFirebaseフィルタリング方法も使用できます。 * startAt()、 endAt()、および equalTo()は、順序付けメソッドと組み合わせることができます。 この例では、 orderByChild()*メソッドと組み合わせます。
例
次の例を考えてみましょう。
最初のクエリは、要素を名前で並べ、 Amanda という名前のプレーヤーからフィルターします。 コンソールは両方のプレイヤーを記録します。 この名前でクエリを終了しているため、2番目のクエリは「Amanda」を記録します。 3番目は「John」を記録します。これは、その名前のプレーヤーを検索しているためです。
4番目の例は、フィルターを「年齢」値と組み合わせる方法を示しています。 文字列の代わりに、年齢が数値で表されるため、* startAt()*メソッド内で数値を渡します。
Firebase Filtering Data Start End Equal
Firebase-ベストプラクティス
この章では、Firebaseのベストプラクティスについて説明します。
データのネストを避ける
Firebaseからデータを取得すると、すべての子ノードが取得されます。 これが、深いネストがベストプラクティスとは言われない理由です。
データの非正規化
深いネスト機能が必要な場合は、いくつかの異なるコレクションを追加することを検討してください。データの複製を追加し、必要なものを取得するために複数のリクエストを使用する必要がある場合でも。
Firebase-メール認証
この章では、Firebase Email/Password認証の使用方法を示します。
ユーザーを作成
ユーザーを認証するには、* createUserWithEmailAndPassword(email、password)*メソッドを使用できます。
例
次の例を考えてみましょう。
Firebaseダッシュボードを確認して、ユーザーが作成されたことを確認できます。
サインイン
サインインプロセスはほとんど同じです。 * signInWithEmailAndPassword(email、password)*を使用してユーザーにサインインします。
例
次の例を考えてみましょう。
サインアウト
最後に、* signOut()*メソッドを使用してユーザーをログアウトできます。
例
次の例を考えてみましょう。
Firebase-Google認証
この章では、FirebaseでGoogle認証を設定する方法を示します。
ステップ1-Google認証を有効にする
Firebaseダッシュボードを開き、左側のメニューで[認証]をクリックします。 利用可能なメソッドのリストを開くには、タブメニューの[ SIGN_IN_METHODS ]をクリックする必要があります。
これで、リストから Google を選択し、有効にして保存できます。
ステップ2-ボタンを作成する
インデックス
ステップ3-サインインとサインアウト
このステップでは、サインインおよびサインアウト機能を作成します。 * signInWithPopup()および signOut()*メソッドを使用します。
例
次の例を考えてみましょう。
ページを更新したら、[Googleサインイン]ボタンをクリックして、Googleポップアップをトリガーできます。 サインインが成功すると、開発者コンソールはユーザーにログインします。
- Googleサインアウト*ボタンをクリックして、アプリからログアウトすることもできます。 コンソールは、ログアウトが成功したことを確認します。
Firebase-Facebook認証
この章では、Firebase Facebook認証でユーザーを認証します。
ステップ1-Facebook認証を有効にする
Firebaseダッシュボードを開き、サイドメニューで[認証]をクリックする必要があります。 次に、タブバーで SIGN-IN-METHOD を選択する必要があります。 Facebook認証を有効にし、ステップ2の完了時に App ID と App Secret を追加する必要があるため、これを開いたままにします。
ステップ2-Facebookアプリを作成する
Facebook認証を有効にするには、Facebookアプリを作成する必要があります。 このリンクをクリックして開始します。 アプリが作成されたら、 App ID と App Secret をFirebaseページにコピーする必要があります。Firebaseページはステップ1で開いたままにします。 また、このウィンドウからFacebookアプリに OAuthリダイレクトURI をコピーする必要があります。 Facebookアプリダッシュボードのサイドメニュー内に + Add Product があります。
[* Facebookログイン*]を選択すると、サイドメニューに表示されます。 Firebaseから OAuth Redirect URI をコピーする必要がある入力フィールド Valid OAuth redirect URIs があります。
ステップ3-Facebook SDKへの接続
例
次の例を考えてみましょう。
ステップ4-ボタンを作成する
最初の3つのステップですべてを設定しました。ログインとログアウト用の2つのボタンを作成できるようになりました。
インデックス
ステップ5-認証関数の作成
これが最後のステップです。 index.js を開き、次のコードをコピーします。
index.js
Firebase-Twitter認証
この章では、Twitter認証の使用方法について説明します。
ステップ1-Twitterアプリを作成する
このhttps://apps.twitter.com [link]でTwitterアプリを作成できます。 アプリが作成されたら、キーとアクセストークン*をクリックして、 APIキー*と* APIシークレット*を見つけます。 これは手順2で必要になります。
ステップ2-Twitter認証を有効にする
Firebaseダッシュボードのサイドメニューで、[認証]をクリックする必要があります。 次に、 SIGN-IN-METHOD タブを開きます。 Twitterをクリックして有効にします。 手順1から* APIキー*および* APIシークレット*を追加する必要があります。
次に、*コールバックURL *をコピーして、Twitterアプリに貼り付ける必要があります。 [設定]タブをクリックすると、TwitterアプリのコールバックURLを見つけることができます。
ステップ3-ボタンを追加する
このステップでは、 indexl の body タグ内に2つのボタンを追加します。
インデックス
ステップ4-認証機能
これで、Twitter認証用の関数を作成できます。
index.js
アプリを起動すると、2つのボタンをクリックしてサインインまたはサインアウトできます。 コンソールは、認証が成功したことを確認します。
Firebase-Github認証
この章では、GitHub APIを使用してユーザーを認証する方法を示します。
ステップ1-GitHub認証を有効にする
Firebaseダッシュボードを開き、サイドメニューの[認証]をクリックしてから、タブバーの[サインイン方法]をクリックします。 GitHub認証を有効にして、 Callback URL をコピーする必要があります。 これは手順2で必要になります。 ステップ2を完了したら*クライアントID *と*クライアントシークレット*を追加する必要があるため、このタブは開いたままにしておくことができます。
ステップ2-Githubアプリを作成する
このhttps://github.com/settings/developers[link]に従ってGitHubアプリを作成してください。 Firebaseから Callback URL を Authorization callback URL フィールドにコピーする必要があります。 アプリを作成したら、 Client Key と Client Secret をGitHubアプリからFirebaseにコピーする必要があります。
ステップ3-ボタンを作成する
インデックス
ステップ4-認証関数の作成
index.js
これで、ボタンをクリックして認証をトリガーできます。 コンソールに認証が成功したことが表示されます。
Firebase-匿名認証
この章では、ユーザーを匿名で認証します。
ステップ1-匿名認証を有効にする
これは、以前の章と同じプロセスです。 Firebaseダッシュボードを開いて、サイドメニューから Auth をクリックし、タブバー内で SIGN-IN-METHOD をクリックする必要があります。 匿名認証を有効にする必要があります。
ステップ2-サインイン機能
この認証には* signInAnonymously()*メソッドを使用できます。
例
次の例を考えてみましょう。
Firebase-オフライン機能
この章では、Firebaseの接続状態を処理する方法を示します。
接続を確認する
次のコードを使用して、接続値を確認できます。
index.js
アプリを実行すると、接続に関するポップアップが表示されます。
上記の機能を使用すると、接続状態を追跡し、それに応じてアプリを更新できます。
Firebase-セキュリティ
Firebaseのセキュリティは、JSONのようなオブジェクトをセキュリティルール内に設定することで処理されます。 セキュリティルールは、サイドメニューの[データベース]をクリックし、タブバーの[ルール]をクリックすると見つかります。
この章では、Firebaseデータを保護する方法を示す簡単な例をいくつか紹介します。
読み書き
Firebaseセキュリティルール内で定義されている次のコードスニペットは、同じ uid で認証されたユーザーの /users/'$ uid'/ への書き込みアクセスを許可しますが、誰でも読むことができます。
例
次の例を考えてみましょう。
検証
次の例を使用して、データを文字列に適用できます。
例
この章では、Firebaseセキュリティルールの表面のみを取り上げました。 重要なことは、これらのルールがどのように機能するかを理解することです。そのため、アプリ内でルールを組み合わせることができます。
Firebase-展開
この章では、Firebaseサーバーでアプリをホストする方法を示します。
始める前に、テキストを indexl 本文タグに追加してみましょう。 この例では、次のテキストを追加します。
ステップ1-Firebaseツールをインストールする
- コマンドプロンプト*ウィンドウでfirebaseツールをグローバルにインストールする必要があります。
ステップ2-Firebaseアプリを初期化する
まず、*コマンドプロンプト*でFirebaseにログインする必要があります。
- コマンドプロンプト*でアプリのルートフォルダーを開き、次のコマンドを実行します。
このコマンドはアプリを初期化します。
注意-デフォルト設定を使用した場合、 public フォルダが作成され、このフォルダ内の indexl がアプリの開始点になります。 回避策として、パブリックフォルダー内にアプリファイルをコピーできます。
ステップ3-Firebaseアプリを展開する
これがこの章の最後のステップです。 *コマンドプロンプト*から次のコマンドを実行して、アプリをデプロイします。
このステップの後、コンソールはアプリのFirebase URLを記録します。 この例では、https://tutorialsfirebase.firebaseapp.com/[https://tutorialsfirebase.firebaseapp.com]と呼ばれます。 ブラウザでこのリンクを実行して、アプリを表示できます。