Firebase Authentication で ソーシャルログインがまれにエラーになる場合

Firebase Authentication で ソーシャルログインがまれにエラーになる場合

April 29, 2022

開発しているアプリで Firebase Authentication の Facebook ログインを利用しています。

ただ、挙動に不可思議な点があって、iPhone でごくまれに “Unable to process request” というエラーが出たり、そもそも Facebook にリダイレクトされないことがあったりといった不具合がありました。

同様のデバイスで同様の操作を行なっても発生したりしなかったり(むしろ発生するのがまれ)で発生要因が特定できないために、非常に悩まされていました。原因が特定できないので調べるのも難しく。。。

そんなこんなでようやく見つけた原因と解決策をこの記事に残しておきます。

といっても他の記事へのリンクになりますが、本記事も Google 検索に引っ掛かるようになることで、少しでもこの事象の解決策の認知が広がればと。

特に Issue 内の次のコメントが詳しいです。

👉 https://github.com/firebase/firebase-js-sdk/issues/4256#issuecomment-852252857

解決策:firebase 初期化時の authDomain を変更する #

運用環境にもよりますが、私の場合は上記コメントの中にあった以下で解決できるものでした。

If possible, ensure that the authDomain field in your Firebase config matches the domain you use for your app. This includes custom domains, but it will only work if you are using Firebase Hosting to serve your app. We believe this should curb most instances of this issue.

具体的には次のように、authDomain をデフォルトの ~~~.firebaseapp.com から、アプリの独自ドメインに変えるだけです。

import { initializeApp } from 'firebase/app';

const firebaseConfig = {
  apiKey: '.........',
  authDomain: 'example.com', // <- デフォルトの 'example-project.firebaseapp.com' から、アプリのカスタムドメインに変更する。
  projectId: '.........',
  storageBucket: '.........',
  messagingSenderId: '.........',
  appId: '.........',
  measurementId: '.........',
};

initializeApp(firebaseConfig);