Expo GoogleサインインのリダイレクトURIの不一致エラーの解決方法


  1. リダイレクトURIの設定を確認する:

    • Google Cloud Consoleにアクセスし、プロジェクトを選択します。
    • 「認証情報」セクションに移動し、OAuth 2.0 クライアントIDを選択します。
    • 正しいリダイレクトURIが設定されていることを確認します。ExpoプロジェクトのURLと一致していることを確認しましょう。
  2. Expoのapp.jsonファイルを編集する:

    • Expoプロジェクトのルートディレクトリにあるapp.jsonファイルを開きます。
    • "expo"セクション内に、"scheme"プロパティを追加します。
    • "scheme"プロパティの値には、リダイレクトURIのスキーム部分を指定します。例えば、"myapp"というスキームを使用する場合は、"scheme": "myapp"となります。
  3. ExpoのAppLoadingコンポーネントを使用する:

    • ExpoのAppLoadingコンポーネントを使用して、アプリが初期化されるまでリダイレクトURIを待機する方法があります。
    • AppLoadingコンポーネントの使用例を以下に示します:

      import React from 'react';
      import { AppLoading } from 'expo';
      import * as GoogleSignIn from 'expo-google-sign-in';
      export default function App() {
      const [isLoadingComplete, setLoadingComplete] = React.useState(false);
      React.useEffect(() => {
       initializeGoogleSignInAsync(); // GoogleSignInの初期化
      }, []);
      async function initializeGoogleSignInAsync() {
       await GoogleSignIn.initAsync();
       setLoadingComplete(true);
      }
      if (!isLoadingComplete) {
       return <AppLoading />;
      }
      // アプリのメインコンテンツを返す処理
      return (
       // ...
      );
      }