maemaewaterの日記

エンジニア兼ゲーマーの人の日記です。PHP/Python/JavaScript/C#/C++などによるプログラムに関することを主に書いています。

Firebaseを使用して独自ドメインでCloud FunctionsのWeb APIをHTTPS接続できるようにする

Cloud Functionsのみの利用では、独自ドメインHTTPSを使用することができないということでした。そこで、FirebaseのHostingの機能を使うと良いとのことです。少し具体的には、Hostingのrewrite(ある特定のURLのパスでアクセスされたときに、その時の動作を書き換える)を使用することで実現します。例えば、/my-apiというパスの時にCloud Functionsの〇〇関数を呼び出すという具合です。

Firebaseにログイン

まずは、Firebaseにログインします。ここでは新しくプロジェクトを作成、または既存のものを使います。

Hostingの選択

次に左側のメニューの[Hosting]を選択します。すると、右の方に青いボタンで[ドメインを接続]とあるので、ドメインの箇所に追加したいドメインを入力します。次へを押すとDNSに設定する内容が表示されるので、利用しているサービスなどでDNSの設定を行います。

デプロイ

Firebaseのアプリケーションを作成して、そのアプリケーションでrewriteの設定を行います。その前にFirebase CLI(Command Line Interface)をインストールする必要があります。

Firebase CLIはnode.jsを利用しているので、node.jsをインストールしておく必要があります。node.jsをインストールしたら、コマンドライン(WindwosであればPower Shellなど)からFirebase CLIをインストールすることができます。

次のページの解説に従えばOKだと思います。

firebase.google.com

npm install -g firebase-tools
firebase login
firebase init (Cloud FunctionsとHostingを選択しました)
firebase use {Google Cloud PlatformのプロジェクトID} (もしCloud Functionsで作成したプロジェクトIDが表示されない時)

firebase.jsonは次のように書き換えます。

{
  "function": {
     ...
   },
   "hosting": {
       ..
      "rewrites": [
         "source": "/my-api, "function": "(api名)"
       ]
    }
}

デプロイは次を実行すればOKです。

firebase deploy

参考: firebase.google.com qiita.com