Gatsby+firebaseで独自ドメインのHTTPSサイトを作る（その２ Firebaseの設定）

# はじめに

（ほぼ）無料で静的サイトを簡単に作れたらいいなと常々おもっていました。
最近は環境などそろってきたのでやってみます。

+ [Gatsby+firebaseで独自ドメインのHTTPSサイトを作る（その１独自ドメインの取り方）](https://qiita.com/kei0425/items/91af9616dcaf4326c251)
+ [Gatsby+firebaseで独自ドメインのHTTPSサイトを作る（その２ Firebaseの設定）](https://qiita.com/kei0425/items/a7da8d263e8833f7e837) ← 今回はここ
+ [Gatsby+firebaseで独自ドメインのHTTPSサイトを作る（その３ Gatsbyの設定）](https://qiita.com/kei0425/items/d5e42d3217278b30004e)

今回は「Firebaseの設定」です。

## 前提条件

+ Cloud9を使って作業
+ お名前.comにアカウントあり
+ Firebaseのアカウントあり

## プロジェクトの作成

Firebaseトップページにアクセスします。

https://firebase.google.com/

右上の「コンソールへ移動」か「使ってみる」をクリックします。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/38676/c840af10-43a0-b5e1-0ed6-42fadeb28c98.png)

「プロジェクトを追加」をクリックします。
すると、「プロジェクトの追加」ダイアログが出て切るので、「プロジェクト名」を入力し、「国/地域」で「日本」（結構下のほう）を選択し、「プロジェクトを作成」をクリックします。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/38676/d88afc2e-f960-1eaa-8629-a1ab0eb7735f.png)

少し待つとプロジェクトの準備ができるので、「次へ」をクリックします。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/38676/c515c20c-eadd-92dd-2bb7-49416a314e71.png)

## ホスティングの設定

左のメニューの「DEVELOP」の「Hosting」をクリックし、「使ってみる」をクリックします。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/38676/a6d989ba-b491-6228-7ab4-a509e811cf10.png)

Firebaseツールのインストールが出てきますが、効率を考えるとここで登録しないほうがよいです。
「次へ」をクリックします。
（サクッとできる人はしてもよいです。）

なお、Firebaseはnodejs v6までの対応だそうです。v10でも問題なさそうですが。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/38676/658dac88-39d1-85bd-d5ef-efd4e3a74e5f.png)

デプロイ方法がでてきますが、ここもまだ何もせずに、「終了」をクリックします。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/38676/a0d014a3-899c-744c-7c06-59c8fa41054a.png)


## 独自ドメインの設定（firebaseにてドメイン所有者の確認まで）

デフォルトで、プロジェクト名のついたドメインが登録されているので、今回作成したドメインを登録します。

「ドメインを接続」をクリックすると、「ドメインを接続」ダイアログが表示されるので、ドメインを入力し、「次へ」をクリックします。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/38676/6feb675a-20c8-c61d-ddd9-c4c18aac9b8a.png)
![image.png](https://qiita-image-store.s3.amazonaws.com/0/38676/1bfcb24a-8801-13af-a1f9-d1f62f152a61.png)

ドメインの所有者を確認するために、以下を登録します。
マークした部分をクリックすると、値がコピーできます。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/38676/37ef69f0-21d0-f876-3642-62c3d27df314.png)

Firebaseはこの画面で放置しておきましょう。

## 独自ドメインの設定（お名前.comにてドメインの所有者の確認まで）

先ほどコピーした値を設定するために、[お名前.com](https://www.onamae.com/)にアクセスしてログインします。

クッキーとか設定とかの関係でいろいろ表示されるかと思いますが、基本的に無視してキャンセルしてください。

その後、「DNS」タブをクリックし、「ドメインのDNS関連機能設定」を選択し、「次へ」をクリックします。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/38676/dbe9dff0-6661-1e0a-15ae-11ed935cc973.png)

設定したいドメイン（今回は、gatsby-test.work）を選択し、「次へ進む」をクリックします。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/38676/ad510aa1-4ee8-2afd-807e-a018b83316ec.png)

少しスクロールさせて
DNSレコード設定を利用する「設定する」をクリックします。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/38676/724bb518-cfc8-b990-dbaa-a018da983fa1.png)

少しスクロールさせて、TXTレコードを設定します。
ホスト名は空欄、TYPEはTXT、TTLは300、値は先ほどコピーしたものを入力し、「追加」をクリックします。
TTLはデフォルトは3600になっていますが、これは3600秒（1時間）キャッシュするという意味になります。
開発中は待っている時間がもったいないので、300秒（5分）に設定するほうがよいです。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/38676/7ba87e32-fc57-f7f8-231c-1824c04998bc.png)

その後、一番下までスクロールして、「確認画面へ進む」をクリックします。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/38676/53bed56d-c3ec-2417-7f27-4ff47db3e349.png)

確認画面が出るので、確認後、「設定する」をクリックします。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/38676/9e109bb9-5bf2-67a8-3e27-afc487c30cbf.png)

お手続き画面が出てくるので、完了するまで待ちます。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/38676/c8ded411-4f38-9259-d228-99b2731ded58.png)

その後、設定が有効になるまでは、Firebaseの画面で「確認」をクリックすると以下のような画面になるので、しばらく待ってから、「確認」をクリックします。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/38676/66932566-7e62-f19a-928a-39810b15a60b.png)

## Firebase ツールの設定とデプロイ

DNSの設定が浸透するのを待つ間にFirebaseツールの設定をしてしまいましょう。

nodejs v6が必要なので、インストールします。（省略）

プロジェクトディレクトリを作成します。
firebaseツールをインストールします。

```sh
npm install -g firebase-tools
mkdir gatsby-test
cd gatsby-test
```

firebaseにログインします。
ローカルで実行する場合には、自動的にブラウザが立ち上がりクリックするだけでよいのですが、cloud9などで実行する場合には--no-localhostオプションが必要になります。
表示されたURLにアクセス後、指示通りにクリックし表示された文字列をペーストします。

```sh
firebase login --no-localhost
? Allow Firebase to collect anonymous CLI usage and error reporting information? Yes

Visit this URL on any device to log in:
https://accounts.google.com/o/oauth2/auth?xxxxxxxxxxxxxxxxxxxxxxxx

? Paste authorization code here: [ここにペースト]

✔  Success! Logged in as xxxxxx@gmail.com
```

これで無事にログインできたかと思います。

テスト用ファイルを用意します。

```index.html(内容は何でも構いません。）
hello firebase!
```

```firebase.json
{
  "hosting": {
    "public": "./",
    "ignore": [
      "firebase.json",
      "**/.*",
      "**/node_modules/**"
    ],
    "rewrites": [ {
      "source": "**",
      "destination": "/index.html"
    } ]
  }
}
```

デプロイします。

```sh
firebase deploy
```

※ firebase initコマンドは、firebase.jsonを作成するだけなので、自分で用意するのなら必要ありません。

デプロイすると、firebaseのURL https://gatsby-test-xxxxx.firebaseapp.com が表示されるので、そこにアクセスして確認しましょう。

```
=== Deploying to 'gatsby-test-xxxxx'...

i  deploying hosting
i  hosting: preparing ./ directory for upload...
✔  hosting: 1 files uploaded successfully

✔  Deploy complete!

Project Console: https://console.firebase.google.com/project/gatsby-test-xxxxx/overview
Hosting URL: https://gatsby-test-xxxxx.firebaseapp.com
```
## 独自ドメインの設定（お名前.comにてAレコードの設定まで）

firebaseのコンソール画面に戻り、IPアドレスをコピーします。
２つ表示されますので、両方とも登録しましょう。
ラウンドロビンといって、両方を順番に利用してくれます。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/38676/1790f8d4-8fcb-fdec-877e-6d5425e82c86.png)

お名前.comに移動し、Aレコードの設定を行います。

IPアドレスはコピペできないので、手で入力します。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/38676/97da0c21-2639-96a3-8a06-f1b45a8fb6f2.png)

TXTの設定と同様に、「追加」をクリックし、下の「確認画面へ進む」をクリックし、「設定する」をクリックしてください。

その後、しばらく待ってから、設定したURLにアクセスすると、先ほど作成したページが表示されます。

さらに、しばらく待つと自動的にHTTPSの設定も終了するため、保護されたページになります。

[Gatsby+firebaseで独自ドメインのHTTPSサイトを作る（その３ Gatsbyの設定）](https://qiita.com/kei0425/items/d5e42d3217278b30004e)につづく