0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Gatsby.jsでFirebase Remote Configを簡単に利用するには

Posted at

はじめに

アプリで有効にする機能や設定などを外部サービスで作成・設定しておいて、その情報を動的に取得してアプリの動作を切り替えるフィーチャーフラグという手法があります。そのような外部サービスには、OptimizelyやLaunchDarklyなどありますが(主要サービスの比較は以下の記事を参照)、ここでは簡単かつ無料で使えるFirebase Remote Configを使って、Gatsbyサイトの構成情報を取得する設定方法を紹介します。

ここで紹介する方法は、Remote Configの設定情報をGraphQLで取得できるようにするものであり、設定情報の取得はビルド時に行われてGatsbyサイト内に静的に埋め込まれることになります。サイトの動作時に設定情報を取得して機能・構成を動的に切り替えるわけではないので利用シーンは限られるかもしれません。動的に取得してサイト構成を切り替えるにはServer-side Renderingを利用することになりますが、こちらは別の機会に紹介します。

前提

  • Firebase (Spark(無料)プラン)
  • Gatsby v4.6.2
  • @mstoduto/gatsby-source-remote-config v1.0.2

Firebase Remote Configの設定

Firebaseのアカウントは作成済みとします。

Firebaseプロジェクトの作成

Firebaseコンソールにログインして、まずFirebaseプロジェクトを作成します。

  1. プロジェクトを追加ボタンを押す
    スクリーンショット 2022-02-07 9.48.06.png

  2. プロジェクトの名前を入力する (手順1/3)
    ここではsampleとします。

  3. Googleアナリティクスの設定はデフォルト(オン)のまま (手順2/3)

  4. Googleアナリティクスの構成ではDefault Account for Firebaseを選択する (手順3/3)

以上でsampleプロジェクトが作成され、そのプロジェクトが開かれた状態となります。

Firebaseアクセストークンの取得

プロジェクトの概要の右側にあるギアアイコンをクリックして、プロジェクトの設定を選択すると(下図)、プロジェクトの設定画面になります。
スクリーンショット 2022-02-07 9.55.45.png

設定画面にてサービスアカウントタブを選択して開きます(下図)。
スクリーンショット 2022-02-07 9.59.56.png

Firebase Admin SDKの情報が表示されるので、一番下にある青い新しい秘密鍵の生成ボタンを押します。すると、Firebaseサービスに接続するためのアクセストークンがJSONファイルとしてダウンロードされますので、このファイルをfirebase.jsonとして保存しておきます。

Firebase Remote Configでフラグを追加

Firebaseコンソール画面の左端にあるサービスメニューから、エンゲージメントの中にあるRemote Configを選択します(下図)。
スクリーンショット 2022-02-07 10.06.09.png

次に表示されるRemote Configの画面から構成を作成ボタンを押すと、フラグ情報の設定ダイアログが現れるので、必要なフラグ情報を作成・追加します(下図)。別のフラグを追加するには、一旦、保存ボタンでこのダイアログを閉じ、Remote Config画面の中程にあるパラメータを追加ボタンで新しいフラグの情報を入力します。
スクリーンショット 2022-02-07 10.09.08.png

こうして作成したフラグはまだ外部から取得できるようになっていませんので、最後に、Remote Config画面上部にある変更を公開ボタンを押して外から見えるようにします。

ここでは、flag1というブール値フラグ(値はtrue)と、flag2という文字列値フラグ(値はsample)の2つを作成しました(下図)。
スクリーンショット 2022-02-07 10.17.11.png

Gatsbyサイトの初期構築

VSCodeのDev Containerを使ってGatsbyのスターターサイトを立ち上げるまでの作業は以下の別記事を参照ください。以下ではgatsby developでスターターサイトがブラウザ表示できているものとします。

プラグインの導入・設定

GatsbyでFirebase Remote Configを利用するプラグインは以下のgatsby-source-remote-configです。

Node.jsコンテナに接続されているVSCodeのコンソールから、以下のようにプラグインをインストールします。

node ➜ /workspaces/site/site (master ✗) $ npm install @mstoduto/gatsby-source-remote-config

先ほど保存しておいたfirebase.jsonファイルをGatsbyサイトが作成されているフォルダ内に置きます。このアクセス情報ファイルは、gitリポジトリに格納されないように、.gitignoreファイルに追加しておくようにしてください。

VSCodeでgatsby-config.jsを開き、以下の設定を追加します(34〜41行目)。
スクリーンショット 2022-02-07 10.32.20.png

GraphQLでのフラグ情報の確認

Firebase Remote Configで追加したフラグ情報をGraphQLで取得できるようになっているかを確認します。

gatsby developで開発サーバを動かしてから、localhost:8000/___graphqlをブラウザで開いてください。以下のように、allRemoteConfigParam, remoteConfigParamという情報ソースが追加されており、適切なクエリを実行することでFirebase Remote Configで作成した二つのフラグを取得できていることが分かります。
スクリーンショット 2022-02-07 10.40.37.png

あとは、適切なクエリをJSプログラムにて記述して、フラグ情報を活用してください。

以上
2022/2/7 初版

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?