[Firebase] Cloud Functionsの実行結果をCDNにキャッシュする

Firebaseで動的に情報を出力する場合にCloudFunctionsを利用するわけですが、頻繁に情報が変化しない場合など実行結果を一定時間キャッシュしたくなりますよね。Firebaseでは非常に手軽に実装できます。

結論から言うと以下のようにCache-Controlヘッダを出力するだけ。以下で30秒間Firebaseが用意するCDNに実行結果がキャッシュされます。publicのつけ忘れにご注意を。

res
  .set("Cache-Control", "public, max-age=30")
  .send("キャッシュされるよ");

最初これを知らずにCDNを別途用意して、Firebase側をオリジンに設定しようとしていましたw 危ない危ないw

続きを読む

Firebaseからのメール「Firebase CLI lower than 7.7.0 will need to explicitly grant access through Cloud IAM」

珍しくFirebaseからメールが届いていましたが、開いてみればIt' a 英文。がんばって読み解いてみます(;´∀`)

結論

結論としては以下です。

  1. FirebaseのCLIのバージョンを今すぐ確認
  2. v7.7.0に満たない場合は今すぐアップデートする
  3. 古いままのCLIを使ってると来月から面倒なことになる

Cloud Functionsのセキュリティ関係の仕様変更により、古いままのCLIでデプロイしてると、「このFunctionを一般公開する」手続きを毎回取る必要が出てきます。新しいバージョンを使っていればその手間は発生しないという内容でした。

続きを読む

[Firebase] デプロイ対象を一部のサービスに限定する

小ネタです。 Firebaseでは特に何も考えずCLIでfirebase deployコマンドを実行するとプロジェクト内のすべてのファイルをデプロイしてくれちゃいます。意図した物であればもちろん良いのですが、例えばHostingだけ、もしくはCloudFunctionsだけといった場合には--onlyオプションを活用します。

続きを読む

[Firebase] CloudFunctionsのRESTful APIを独自ドメインで利用する

小ネタです。

FirebaseでCloudFunctionsを利用してRESTful APIを作成していると、通常はhttps://[Region]-[ProjectID].cloudfunctions.net/[関数名]といったURLになるわけですが、これを独自ドメインで運用したい、またはパスを変更したい場合の設定方法です。

続きを読む

Web版「Sign In with Apple」を実装する

今年のWWDCで発表された「Sign In with Apple」のWeb版(JavaScript版)を実装してみたいと思います。

今回、裏側はFirebaseを利用していますが、Authenticationは使っていませんので、一般的な環境でも参考になると思います。(執筆時点でまだFirebaseが未対応なので使いたくても使えないわけですがw)

※2019-09-23 「1.5 ユーザーを一意に特定するID」追記

developer.apple.com

続きを読む

[Firebase] Authenticationで複数の認証プロバイダへ同時対応する (Web編)

今まではFirebaseの個別の認証プロバイダでログインしていましたが、今回はここまで対応した全プロバイダのいずれかでログインできる仕組みを作ってみます。

以下の画面のように複数の認証方法から自由に選択することができます。

続きを読む

[Firebase] AuthenticationでSMS認証 (Web編)

これまでFirebaseへ様々な認証をお試してしてきました。

今回は電話番号を使ったSMS認証です。

AuthenticationでSMSログイン

メールアドレスやSMSは匿名性の高い物が一人で量産できてしまいますが、電話番号であれば何かしらの契約が必要になりますのでハードルを高くすることが可能です。

この認証方法ではユーザーが入力した電話番号宛にFirebaseからSMS(昔でいうショートメール)が送信されます。SMS内にある暗証番号をログインページで入力してもらうことで本人確認が行えるというわけです。

続きを読む