何が起きたか
ローカル環境では問題無し。
しかし本番環境でログインをしようとするとポップアップ先でThe requested action is invalid.
と表示され、ログインが出来ない。
セキュリティ周りを確認
- [Firebase]>[Authentication]>[Settings]>[承認済みドメイン]
しっかりと自身のドメインexample.com
が入力されていることを確認。 - [Google Cloud]>[APIとサービス]>[認証情報]>[API キー]>[キーの制限]
今回のプロジェクトでは[ウェブサイトの制限]を選択。こちらもしっかりとexample.com
が入力されている。
APIキーを無制限にするとなぜか動く
上記の[キーの制限]をなしにするとなぜか動く。ホワイトリストの書き方が悪いのかと思い色々と試すが結果は変わらず。
結論
[キーの制限]のホワイトリストにhttps://PROJECT_ID.firebaseapp.com/*
を追加すると無事に動いた。
ログイン画面がポップアップ(あるいはリダイレクト)した際のURLはそちらになるのでホワイトリストへの追加が必要?なようだ。
反省点
ブラウザの開発者ツールでコンソールを確認するとしっかりとエラーの理由が表示されていた。
基本的な確認を怠らないようにしたい。