このページでは、Firebase Authentication の使用に関するトラブルシューティングのヘルプ情報と、よくある質問への回答を紹介します。お探しの情報が見つからない場合や、サポートが必要な場合は、Firebase サポートにお問い合わせください。
電話認証がサポートされている地域はどこですか?
Firebase Authentication は電話番号の確認を世界中でサポートしていますが、すべてのネットワークが確実に確認メッセージを配信するわけではありません。以下のリージョンでは配信率が高く、電話認証が正しく機能すると考えられます。注記がある場合、一部の通信会社では、配信成功率が低いためにそのリージョンでご利用いただけません。
| リージョン | コード |
|---|---|
| AD | アンドラ |
| AE | アラブ首長国連邦 |
| AF | アフガニスタン |
| AG | アンティグア バーブーダ |
| AL | アルバニア |
| AM | アルメニア |
| AO | アンゴラ |
| AR | アルゼンチン |
| AS | 米領サモア |
| AT | オーストリア |
| AU | オーストラリア |
| AW | アルバ |
| AZ | アゼルバイジャン |
| BA | ボスニア ヘルツェゴビナ |
| BB | バルバドス |
| BD | バングラデシュ |
| BE | ベルギー |
| BF | ブルキナファソ |
| BG | ブルガリア |
| BJ | ベナン |
| BM | バミューダ |
| BN | ブルネイ ダルサラーム国 |
| BO | ボリビア |
| BR | ブラジル |
| BS | バハマ |
| BT | ブータン |
| BW | ボツワナ |
| BY | ベラルーシ |
| BZ | ベリーズ |
| CA | カナダ |
| CD | コンゴ(キンシャサ) |
| CF | 中央アフリカ共和国 |
| CG | コンゴ(ブラザビル) |
| CH | スイス |
| CI | コートジボワール |
| CK | クック諸島 |
| CL | チリ |
| CM | カメルーン |
| CO | コロンビア |
| CR | コスタリカ |
| CV | カーボヴェルデ |
| CW | キュラソー |
| CY | キプロス |
| CZ | チェコ共和国 |
| DE | ドイツ |
| DJ | ジブチ |
| DK | デンマーク |
| DM | ドミニカ国 |
| DO | ドミニカ共和国 |
| DZ | アルジェリア |
| EC | エクアドル |
| EG | エジプト |
| ES | スペイン |
| ET | エチオピア |
| FI | フィンランド |
| FJ | フィジー |
| FK | フォークランド諸島(マルビナス諸島) |
| FM | ミクロネシア連邦 |
| FO | フェロー諸島 |
| FR | フランス |
| GA | ガボン |
| GB | 英国 |
| GD | グレナダ |
| GE | ジョージア |
| GF | 仏領ギアナ |
| GG | ガーンジー |
| GH | ガーナ |
| GI | ジブラルタル |
| GL | グリーンランド |
| GM | ガンビア |
| GP | グアドループ |
| GQ | 赤道ギニア |
| GR | ギリシャ |
| GT | グアテマラ |
| GY | ガイアナ |
| HK | 中華人民共和国香港特別行政区 |
| HN | ホンジュラス |
| HR | クロアチア |
| HT | ハイチ |
| HU | ハンガリー |
| ID | インドネシア |
| IE | アイルランド |
| IL | イスラエル |
| IM | マン島 |
| IN | インド |
| IQ | イラク |
| IT | イタリア |
| JE | ジャージー |
| JM | ジャマイカ |
| JO | ヨルダン |
| JP | 日本 |
| KE | ケニア |
| KG | キルギスタン |
| KH | カンボジア |
| KM | コモロ |
| KN | セントクリストファー ネービス |
| KR | 韓国 |
| KW | クウェート |
| KY | ケイマン諸島 |
| KZ | カザフスタン |
| LA | ラオス人民民主共和国 |
| LB | レバノン |
| LC | セントルシア |
| LI | リヒテンシュタイン |
| LK | スリランカ |
| LS | レソト |
| LT | リトアニア |
| LU | ルクセンブルグ |
| LV | ラトビア |
| LY | リビア |
| MA | モロッコ |
| MD | モルドバ |
| ME | モンテネグロ |
| MF | セントマーチン島(仏領) |
| MG | マダガスカル |
| MK | マケドニア共和国 |
| MM | ミャンマー |
| MN | モンゴル |
| MO | 中華人民共和国マカオ特別行政区 |
| MS | モントセラト |
| MT | マルタ |
| MU | モーリシャス |
| MW | マラウイ |
| MX | メキシコ |
| MY | マレーシア |
| MZ | モザンビーク |
| NA | ナミビア |
| NC | ニューカレドニア |
| NE | ニジェール |
| NF | ノーフォーク島 |
| NG | ナイジェリア |
| NI | ニカラグア |
| NL | オランダ |
| NO | ノルウェー |
| NP | ネパール |
| NZ | ニュージーランド |
| OM | オマーン |
| PA | パナマ |
| PE | ペルー |
| PG | パプアニューギニア |
| PH | フィリピン |
| PK | パキスタン |
| PL | ポーランド |
| PM | サンピエール ミクロン |
| PR | プエルトリコ |
| PS | パレスチナ自治区 |
| PT | ポルトガル |
| PY | パラグアイ |
| QA | カタール |
| RE | レユニオン |
| RO | ルーマニア |
| RS | セルビア |
| RU | ロシア連邦 |
| RW | ルワンダ |
| SA | サウジアラビア |
| SC | セーシェル |
| SE | スウェーデン |
| SG | シンガポール |
| SH | セントヘレナ |
| SI | スロベニア |
| SK | スロバキア |
| SL | シエラレオネ |
| SN | セネガル |
| SR | スリナム |
| ST | サントメ プリンシペ |
| SV | エルサルバドル |
| SZ | スワジランド |
| TC | タークス カイコス諸島 |
| TG | トーゴ |
| TH | タイ |
| TL | 東ティモール |
| TM | トルクメニスタン |
| TO | トンガ |
| TR | トルコ |
| TT | トリニダード トバゴ |
| TW | 台湾、中華民国 |
| TZ | タンザニア連合共和国 |
| UA | ウクライナ |
| UG | ウガンダ |
| US | アメリカ合衆国 |
| UY | ウルグアイ |
| UZ | ウズベキスタン |
| VC | セントビンセントおよびグレナディーン諸島 |
| VE | ベネズエラ(ボリバル共和国) |
| VG | 英領バージン諸島 |
| VI | 米領バージン諸島 |
| VN | ベトナム |
| WS | サモア |
| YE | イエメン |
| YT | マヨット |
| ZA | 南アフリカ |
| ZM | ザンビア |
| ZW | ジンバブエ |
Spark お支払いプランの無料 SMS はどうなりますか?
2024 年 9 月以降に電話認証のセキュリティとサービス品質を向上させるには、Firebase プロジェクトを Cloud Billing アカウントにリンクし、SMS サービスを有効にして使用する必要があります。
電話認証の使用時に SMS の不正使用を防ぐにはどうすればよいですか?
SMS トラフィック ポンピングや API の不正使用からプロジェクトを保護するには、次の手順を行います。
SMS リージョン ポリシーの設定を検討する
-
送信された SMS の数が非常に多く、確認済み SMS の数が非常に少ない(またはゼロの)リージョンを探します。送信数に対する確認済みの比率が成功率です。SMS は確実な配信プロトコルではないため、正常な成功率は通常 70 ~ 85% の範囲で、一部の地域では不正行為が発生する可能性があります。成功率 50% 未満は、SMS の送信回数は多いが、成功するログインはほとんどないことを意味します。これは、不正な行為者や SMS トラフィック ポンピングを示す一般的な指標です。
SMS リージョン ポリシーを使用して、成功率の低い SMS のリージョンを拒否するか、アプリが特定の市場での配信専用である場合は特定のリージョンのみを許可します。
認可された認証ドメインを制限する
認可されたドメインを管理するには、認証設定ダッシュボードを使用します。開発を簡素化するために、承認された認証ドメインに localhost ドメインがデフォルトで追加されます。不正な行為者が彼らの localhost でコードを実行して、本番環境プロジェクトにアクセスするのを防ぐために、本番環境プロジェクトの承認済みドメインから localhost を削除することを検討してください。
App Check を有効にして適用する
App Check を有効にして、プロジェクトに関連付けられたアプリケーションからのみリクエストが来ることを証明することで、API の不正使用からプロジェクトを保護できるようにします。
Firebase Authentication で App Check を使用するには、Firebase Authentication with Identity Platform にアップグレードする必要があります。
Firebase コンソールで Authentication に App Check を適用する必要があります(適用する前にトラフィックのモニタリングを検討してください)。また、reCAPTCHA Enterprise の承認サイトリストを再度確認し、本番環境サイトのみが含まれていることと、App Check でプロジェクトに登録されているアプリケーションのリストが正確であることを確認します。
App Check は、登録済みのアプリケーションのいずれかからの呼び出しであることを確認することで、自動攻撃から保護します。ユーザーがアプリを意図しない方法で使用すること(たとえば、送信された SMS を生成するためにログインフローを開始して終了しないなど)を防止するものではありません。
新しい携帯通信会社に移行した電話番号は、電話認証でサポートされますか?
現時点では、携帯通信会社間で番号を移行すると、そのエンドユーザーの SMS はすべて配信できなくなります。回避策はありません。Firebase では現在、この問題に取り組んでいます。
Android アプリで次のエラーが表示されるのはなぜですか?
Google sign in failed
Google sign in failed次のエラーが表示された場合は、このよくある質問のトラブルシューティング手順を行ってください。
GoogleFragment: Google sign in failed
com.google.android.gms.common.api.ApiException: 13: Unable to get token.
at
com.google.android.gms.internal.auth-api.zbay.getSignInCredentialFromIntent(com.google.android.gms:play-services-auth@@20.3.0:6)
Google ログインが認証プロバイダとして適切に有効になっていることを確認します。
Firebase コンソールで [Authentication] セクションを開きます。
[ログイン方法] タブで、[Google] をいったん無効にしてから、再度有効にします(有効な場合も含む)。
[Google] ログイン方法を開き、無効にしてから、[保存] をクリックします。
[Google] ログイン方法を再度開いて有効にし、[保存] をクリックします。
アプリで最新の Firebase 構成ファイル(
google-services.json)を使用していることを確認してください。
アプリの構成ファイルを取得します。引き続きエラーが発生するかどうかを確認します。該当する場合は、次のトラブルシューティングの手順に進みます。
基礎となる OAuth 2.0 クライアントがあることを確認します。
Apple プラットフォーム アプリで次のエラーが表示されるのはなぜですか?
You must specify <clientID> in <GIDConfiguration>
You must specify <clientID> in <GIDConfiguration>次のエラーが表示された場合は、このよくある質問のトラブルシューティング手順を行ってください。
You must specify |clientID| in |GIDConfiguration|
Google ログインが認証プロバイダとして適切に有効になっていることを確認します。
Firebase コンソールで [Authentication] セクションを開きます。
[ログイン方法] タブで、[Google] をいったん無効にしてから、再度有効にします(有効な場合も含む)。
[Google] ログイン方法を開き、無効にしてから、[保存] をクリックします。
[Google] ログイン方法を再度開いて有効にし、[保存] をクリックします。
アプリで最新の Firebase 構成ファイル(
GoogleService-Info.plist)を使用していることを確認してください。
アプリの構成ファイルを取得します。引き続きエラーが発生するかどうかを確認します。該当する場合は、次のトラブルシューティングの手順に進みます。
基礎となる OAuth 2.0 クライアントがあることを確認します。
ウェブアプリで次のエラーが表示されるのはなぜですか?
AuthErrorCode.INVALID_OAUTH_CLIENT_ID
AuthErrorCode.INVALID_OAUTH_CLIENT_ID次のエラーが表示された場合は、このよくある質問のトラブルシューティング手順を行ってください。
AuthErrorCode.INVALID_OAUTH_CLIENT_ID
Google ログインが認証プロバイダとして適切に有効になっていることを確認します。
Firebase コンソールで [Authentication] セクションを開きます。
[ログイン方法] タブで、[Google] をいったん無効にしてから、再度有効にします(有効な場合も含む)。
[Google] ログイン方法を開き、無効にしてから、[保存] をクリックします。
[Google] ログイン方法を再度開いて有効にし、[保存] をクリックします。
また、[Authentication] セクションの [Google] ログイン プロバイダの設定で、OAuth クライアント ID とシークレットが、Google Cloud コンソールの [認証情報] ページに表示されるウェブ クライアントと一致していることを確認してください([OAuth 2.0 クライアント ID] セクションを確認してください)。
ウェブアプリで、リダイレクトを使用したログインが失敗し、次のエラーが表示されるのはなぜですか?
This domain YOUR_REDIRECT_DOMAIN is not
authorized to run this operation
This domain YOUR_REDIRECT_DOMAIN is not
authorized to run this operation次のエラーが表示された場合は、このよくある質問のトラブルシューティング手順を行ってください。
This domain YOUR_REDIRECT_DOMAIN is not authorized to run this operation.
このエラーは、リダイレクト ドメインが Firebase Authentication の承認済みドメインとしてリストされていない場合、または Firebase Authentication サービスで使用する API キーが無効な場合に発生する可能性があります。
まず、YOUR_REDIRECT_DOMAIN が Firebase プロジェクトの承認済みドメインのリストに含まれていることを確認します。リダイレクト ドメインがすでにリストに表示されている場合は、無効な API キーのトラブルシューティングに進みます。
デフォルトでは、Firebase Authentication JS SDK は Browser key というラベルが付いた Firebase プロジェクトの API キーに依存します。このキーを使用して、承認済みドメインのリストに従ってログイン リダイレクト URL が有効であることを確認します。Authentication は、Authentication SDK へのアクセス方法に応じてこの API キーを取得します。
Hosting が提供する Auth ヘルパーを使用して Authentication JS SDK でユーザーがログインするようにした場合、Firebase は Firebase Hosting にデプロイするたびに、他の Firebase 構成とともに API キーを自動的に取得します。ウェブアプリ
firebaseConfigのauthDomainが、その Hosting サイトのドメインのいずれかを使用するように正しく構成されていることを確認します。これは、https://authDomain__/firebase/init.jsonに移動して、projectIdがfirebaseConfigのものと一致しているかチェックすることで確認できます。ログインコードを自社でホストする場合は、
__/firebase/init.jsonファイルを使用して、自社でホストする Authentication JS SDK リダイレクト ヘルパーに Firebase 構成を提供できます。API キーとこの構成ファイルにリストされているprojectIdは、ウェブアプリのfirebaseConfigと一致している必要があります。
この API キーが削除されていないことを確認します。Google Cloud コンソールの [API とサービス] > [認証情報] パネルに移動し、プロジェクトのすべての API キーを確認します。
Browser keyが削除されていない場合は、次の点を確認してください。Firebase Authentication API が、キーへのアクセスが許可された API のリストに含まれていることを確認します(API キーに対する API の制限の詳細)。
ログイン コードを自社でホストする場合は、
__/firebase/init.jsonファイルにリストされている API キーが Google Cloud コンソールの API キーと一致していることを確認します。必要に応じて、ファイル内のキーを修正してから、アプリを再デプロイします。Browser keyが削除されている場合は、Firebase で新しい API キーを生成できます。Firebase コンソールで、settings > プロジェクト設定 に移動し、[マイアプリ] セクションでウェブアプリをクリックします。この操作により、ウェブアプリの [SDK の設定と構成] セクションに表示される API キーが自動的に作成されます。
Google Cloud コンソールでは、この新しい API キーは
Browser keyではなく、Firebase ウェブアプリのニックネームと同じ名前になります。この新しい API キーに API の制限を追加する場合は、許可された API のリストに Firebase Authentication API が含まれていることを確認してください。新しい API キーが作成されたら、以下の該当する手順を完了します。
予約済みの Hosting URL を使用している場合は、アプリを Firebase に再デプロイして、残りの Firebase 構成とともに新しい API キーを自動的に取得できるようにします。
ログイン コードを自社でホストしている場合は、新しい API キーをコピーして
__/firebase/init.jsonファイルに追加し、アプリを再デプロイします。
OAuth ウェブ クライアントを手動で構築するにはどうすればよいですか?
Google Cloud コンソールの [認証情報] ページを開きます。
ページの上部で [認証情報を作成] > [OAuth クライアント ID] を選択します。
同意画面の設定を求められた場合は、画面上の指示に沿って、この「よくある質問」の次のステップに進みます。
OAuth ウェブ クライアントを作成します。
[アプリケーションの種類] で [ウェブ アプリケーション] を選択します。
[承認済みの JavaScript 生成元] に、以下を追加します。
http://localhosthttp://localhost:5000https://PROJECT_ID.firebaseapp.comhttps://PROJECT_ID.web.app
[承認済みのリダイレクト URI] には、以下を追加します。
https://PROJECT_ID.firebaseapp.com/__/auth/handlerhttps://PROJECT_ID.web.app/__/auth/handler
OAuth クライアントを保存します。
新しい OAuth クライアント ID とクライアント シークレットをクリップボードにコピーします。
Firebase コンソールで [Authentication] セクションを開きます。
[ログイン方法] タブで [Google ログイン] プロバイダを開き、作成して Google Cloud コンソールからコピーしたウェブサーバーのクライアント ID とシークレットを貼り付けます。[保存] をクリックします。
%APP_NAME% は、ユーザーがメールアドレスとパスワードを使用して登録したときに送信できる確認メール用のメール テンプレートにどのように指定されるのですか?
2022 年 12 月以前は、メール テンプレートの %APP_NAME% に、Android アプリが Firebase プロジェクトに登録されるたびに自動的にプロビジョニングされた OAuth ブランド名が入力されていました。現在は、Google ログインが有効になっている場合にのみ OAuth ブランドがプロビジョニングされるため、%APP_NAME% を判別する方法は次のとおりです。
OAuth ブランド名が使用可能な場合、メール テンプレートの
%APP_NAME%が OAuth ブランド名になります(2022 年 12 月より前の動作と同様)。OAuth ブランド名を使用できない場合、メール テンプレートの
%APP_NAME%は次のように決定されます。ウェブアプリの場合、
%APP_NAME%はデフォルトの Firebase Hosting サイト名になります(.firebaseapp.comと.web.appの前の値、通常は Firebase プロジェクト ID)。モバイルアプリの場合:
リクエストに Android パッケージ名または iOS バンドル ID が存在する場合、
%APP_NAME%は Play Store または App Store(それぞれ)で使用されるアプリ名になります。それ以外の場合、
%APP_NAME%はデフォルトの Firebase Hosting サイト名になります(.firebaseapp.comと.web.appの前の値、通常は Firebase プロジェクト ID)。
デフォルトの Firebase Hosting サイト名の検索が失敗した場合、最終的な代替手段は Firebase プロジェクト ID を
%APP_NAME%として使用することです。