Firebaseのドメイン.web.appはDNSの浸透が遅れる時がある
こんにちは!Firebase卒業ができないMizutani(@sirycity)です。便利すぎる。
今日はそんなFirebaseのHostingの怖い話です。
結論
Firebase HostingのデフォルトのURLを使う時は早めに準備しておこう。3日前くらい。うそ。1週間前くらい。
はじめに
Firebase HostingはFirebaseの提供するHostingサービスです(環境大臣)
なので静的ファイル置いてドメイン設定するとWebサイトが公開できるんですが、Firebaseは多くのホスティングサービスと同じようにデフォルトのドメインを持ってます。特に設定しないとこれになるってやつね。この2つです。
.web.app
.firebaseapp.com
2つもあるんですって。丁寧ですね。機能は特に違わないです。じゃあ1つでよくね?って話ですが昔は後者だけだったみたいです。
ただまあ、実際には使うとしたら前者ばっか使うと思います。ほんとは独自ドメイン使うと綺麗なんだけどね。お金かかるしね。
デフォルトURLの罠
んでこの.web.app
、基本的にfirebaseのプロジェクトを作成するとすぐに使えるようになるんですがごく稀にすぐには使えないことがあります。そしてこうなった場合自力での解決は無理です。
具体的にはSite Not FoundみたいなFirebaseのエラー画面が出ます。アカウントだけ作って何もデプロイしていなくてもこの表示になるんですが、この症状に該当するとデプロイしてもこの表示になります。より細かく言うとトップページだけこの表示になります。example.com
は駄目ですがexample.com/foo
は普通に表示されますし、なんならexample.com/index.html
も普通に見れます。トップページだけ駄目です。あと調べたところ.firebaseapp.com
では起きないみたい。
どんな時に困るか
web.appのURLを共有してしまった後にこの現象に出くわした時、共有された側がページにアクセスできなくなります。
原因
DNSの浸透が遅れてるせい。みたいです(他力本願)
Firebase default hosting domains: only .firebaseapp.com works but .web.app fails
じゃあどうしようもないですね(諦観)
対策
待てばいいです。3日待てばいいです。それはそうなんですが、待っていられる状況ばかりではないですよね。
まず、ダサいとかを考慮しないならURLを共有する際にindex.htmlが付いた状態で共有しましょう。とりあえずこれで全くアクセスできなくなる事態は避けられるでしょう。あと未確認ですがfirebaseappの方では起こらないみたいなのでそちらを使うのも良いと思います。
あと、ほんとにほんとにどうしようもなくなったらサポートに連絡です。後述しますが、サポートが神でした。
実際に起こった問題
ここからは僕の実体験ですが、単発サイトの公開3日前にweb.appのURLを立ち上げQRコードを作成、関係者に配布した後に今回の問題に当たりました。QR配布済みなのでURLを変えることもできず、3日待ち当日朝になっても解決せず。ちなみに一度直ったのにまたnotfoundになったりしました。この時点でメンタルはやばく、結局サポートに連絡した所20分で解決。おしまい。反省点としては環境構築が3日前は遅すぎるって所でしょうかね。
さいごに
かなりレアケースの問題ではあるものの、こういう事も一応あるという話でした。みんなも環境構築は早めにね!以上。