レディ、セット、ファイア!
こんにちは、トムはここに書いています! Firebaseを熱心に使用している場合は、バックエンドのないバックエンドを実際に簡単に処理できることをご存知でしょう。 Firebase Functionsのおかげで、ビジネスロジックをプレーンな関数として記述し、CLIを介してこの関数をデプロイするだけで、地球上のあらゆる場所のクラウドからアクセスできます。セットアップ自体は非常に単純なので、展開だけでも最大で数分しかかかりません。ただし、Firebase Functionsには、Firebaseが提供するドメインではなく、カスタムドメインを使用して、さらに作業が必要になる可能性のある特殊なケースがあります。
挑戦
説明されているようにFirebaseFunctionsをデプロイするだけの場合、Googleのサブドメイン、特に
cloudfunctions.net
単純なユースケースの場合、これはほとんど必要なものです。モノをデプロイして、利用できるようにするだけです。ただし、他のユースケースでは、ドメインの下でバックエンドに到達できる必要があります。この例では、独自のドメインflaming.codesを使用します。
セットアップ
念のため、前提条件は次のとおりです。
- Firebaseプロジェクトを設定しました
- [ホスティング]で、カスタムドメインを設定しました。これは簡単なプロセスで、ホスティングプロバイダーにTXTレコードを保存するだけです。
構成
カスタムドメインをホストされているウェブアプリだけでなく関数でも実際に機能させるには、firebase.jsonを更新する必要があります(サンプル後の説明)。
{
"functions": {
...
},
"hosting": {
...,
"rewrites": [
{
"source": "/api/**",
"function": "api"
},
{
"source": "!/api/**",
"destination": "/index.html"
}
]
},
...
}
それを機能させる唯一の秘訣は、firebase.jsonの関数ではなく、ホスティングキーを更新することです。基本的に行っているのは、ホストされているウェブアプリから/ api / ...へのすべての呼び出しをapiという関数にリダイレクトする必要があることをFirebaseに通知することです。私が最も時間がかかったのは2番目の項目で、デフォルトのWebアプリルートとして処理されるように、API以外のすべてのルートを明示的に宣言する必要があります。
次の設定を使用して、古いクラウド機能
https://uscentral1-flaming-codes.cloudfunctions.net/api
したがって、
https://flaming.codes/api / ...
ここでは順序が重要であることに注意してください。書き換えルールは最初から最後の要素まで処理されるため、この場合は上から下へ、視覚的に言えば。ワイルドカードを使用してすべての関数を再マップすることは、Webアプリを壊す可能性があるため、一般的な使用にはお勧めできません。
要約
そして、ええ、それは本当に魔法ではありませんが、特定のユースケースでFirebaseFunctionsを使用するときに大いに役立ちます。すでに登録されているドメインの一部としてクラウド機能を書き直す方法を見てきました。したがって、新しいカスタムサブドメインの要件がなくなります。これも可能ですが、このチュートリアルの範囲外です。
- Tom