【Chrome Extension】Manifest V3だとFirebase AuthenticationのgetAuth()がService Worker上ではできない

解決策としては、popup.htmlとかで認証処理する。

  "action": {    "default_popup": "popup.html"  }

以下エラーとなったコード。

const app = initializeApp(firebaseConfig);

chrome.action.onClicked.addListener(async (tab) => {
  const auth = getAuth(app);
  const email: string = "test@hoge.com";
  const password: string = "testPass";
  createUserWithEmailAndPassword(auth, email, password)
    .then((userCredential) => {
      // Signed in
      const user = userCredential.user;
      // ...
    })
    .catch((error) => {
      const errorCode = error.code;
      const errorMessage = error.message;
      // ..
    });
});

const auth = getAuth(app); のタイミングでエラーが出る。

原因はService Workerでwindowオブジェクトが使えないから。

念のため確認(どこでやっても同じだろうけど)

ちなみに、 Manifest v2までだと Service Workerではなかったのでwindowオブジェクトが使えていた。なのでいけてた。