KotlinとJetpackでスケジュールされたAndroidアプリケーションをFirebase APIを使用して構成できるようにするには、Google Authを使用してユーザーを認証できるようにするには、次の手順を実行できます。

最初に、build.graleファイルにFirebase認証依存関係を追加します。

      実装 'com.google.firebase：firebase-auth-ktx：21.0.1'


次に、Firebaseコンソールにプロジェクトを作成し、Androidアプリケーションを追加します。ここでは、Google-Services構成ファイルを必ずダウンロードしてください。

その後、AndroidManifest.xmlファイルで、Google Authでログインを処理できるように、次のアクティビティを追加する必要があります。

      <アクティビティ
         Android：name = "com.google.firebase.auth.inrnal.genericidpactivity"
         Android：theme = "@style/firebaseui.theme"
         Android：WindowsoftInputMode = "adjustresize">
            <atant-filter>
               <アクションAndroid：name = "android.inent.action.view" />
               <androidカテゴリ：name = "android.inent.category.default" />
               <androidカテゴリ：name = "android.inent.category.browsable" />
               <data android：scheme = "com.example.myapp" />
            </テントフィルター>
      </ctivity>

これで、[アプリケーションモジュール]の[build.graleファイル]で、次のルールをdefaultconfigセクションに追加する必要があります。

      manifestplaceholders = ["appauthredirectscheme"： "com.example.myapp"]]

次に、ログインアクティビティで、GoogleSignInoPotionsのオブジェクトを作成します。Googleでログインを構成するには、GoogleSignInoPotionsを使用してGoogleSignInclientオブジェクトを作成する必要があります。

      valgoogleSignopotions = googleSigninoptions.builder（googleSigninotions.default_sign_in）
          .aquestidtoken（getting（r.string.default_web_client_id）））
          requestmail（）
          。建てる （）

      valgoogleSigninclient = googleSignin.getClient（これ、googleSigninopotions）

一方、JetPack Compose Designのログインにボタンを追加する必要があります。ボタンを押すと、Googleでログインプロセスを開始するには、次の方法と呼ばれる必要があります。

      楽しいサインインウィットグーグル。
          val Signinant = googleSigninclient.signininte
          Activity.startctivityForresult（and、rc_sign_in）
      }

「RC_SIGN_IN」は、StartativityForresultで使用されるアプリケーションコードの定数であると考えてください。

ログインアクティビティを完了するには、OnActivityResultメソッドを上書きしてGoogleでログインのログイン応答を処理します。ログインが成功した場合は、FireBaseuthWithGoogleメソッドを呼び出してFireBaseを使用してユーザーを認証します。

      楽しいonactivityResult（requestCode：int、result：int、data：attem？）{
          super.onactivityResult（requestCode、result、data）

          if（requestcode == rc_sign_in）{
              val task = googleSign
              試す {
                  valアカウント= task.getResult（apiexception :: class.java）
                  firebaseauthwithgoogle（account.idtoken !!）
              } catch（e：apiexception）{
                  log.w（タグ、 "Googleサインインが失敗した"、e）
              }
          }
      }

      private finebaseauthwithgoogle（idtoken：string）{
          資格情報val = googleauthprovider.getCreDential（idtoken、null）
          firebase.auth.signinwithcredential（資格）
              .adcompletelistener（this）{task->
                  if（task.issuccessful）{
                      // Googleでのログインが成功し、次のアクティビティに移動できます。
                 }
          }
      }
Para poder conectar tu aplicación de Android programada en Kotlin y Jetpack Compose utiliando la API de Firebase para autenticar a un usuario con Google Auth, puedes realizar los siguientes pasos:

Primero agrega la dependencia de Firebase Authentication en tu archivo build.gradle en el módulo de la aplicación:

      implementation 'com.google.firebase:firebase-auth-ktx:21.0.1'


Luego crea un proyecto en Firebase Console y agrega tu aplicación de Android, dónde debes de asegúrarte de descargar el archivo de configuración google-services.json y agregarlo a la carpeta app de tu proyecto.

Posteriormente en tu archivo AndroidManifest.xml, debes agregar la siguiente actividad para poder manejar el inicio de sesión con Google Auth:

      <activity
         android:name="com.google.firebase.auth.internal.GenericIdpActivity"
         android:theme="@style/FirebaseUI.Theme"
         android:windowSoftInputMode="adjustResize">
            <intent-filter>
               <action android:name="android.intent.action.VIEW" />
               <category android:name="android.intent.category.DEFAULT" />
               <category android:name="android.intent.category.BROWSABLE" />
               <data android:scheme="com.example.myapp" />
            </intent-filter>
      </activity>

Ahora en tu archivo build.gradle en el módulo de la aplicación, debes agrega la siguiente regla en la sección defaultConfig:

      manifestPlaceholders = [    "appAuthRedirectScheme": "com.example.myapp"]

Para después en tu actividad de inicio de sesión, crear un objeto de GoogleSignInOptions dónde para configurar el inicio de sesión con Google debes crear un objeto GoogleSignInClient utilizando el GoogleSignInOptions, de la siguiente manera:

      val googleSignInOptions = GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
          .requestIdToken(getString(R.string.default_web_client_id))
          .requestEmail()
          .build()

      val googleSignInClient = GoogleSignIn.getClient(this, googleSignInOptions)

Por otro lado en tu diseño de Jetpack Compose, debes agregar un botón para el inicio de sesión con Google, dónde cuando el botón sea presionado, debe ser llamado el siguiente método para iniciar el proceso de inicio de sesión con Google:

      fun signInWithGoogle(activity: Activity, googleSignInClient: GoogleSignInClient) {
          val signInIntent = googleSignInClient.signInIntent
          activity.startActivityForResult(signInIntent, RC_SIGN_IN)
      }

Considera que "RC_SIGN_IN" es una constante para el código de solicitud utilizado en startActivityForResult.

Para finalizar en tu actividad de inicio de sesión, sobrescribe el método onActivityResult para manejar la respuesta del inicio de sesión con Google, dónde si el inicio de sesión es exitoso, llama al método firebaseAuthWithGoogle para autenticar al usuario con Firebase:

      override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
          super.onActivityResult(requestCode, resultCode, data)

          if (requestCode == RC_SIGN_IN) {
              val task = GoogleSignIn.getSignedInAccountFromIntent(data)
              try {
                  val account = task.getResult(ApiException::class.java)
                  firebaseAuthWithGoogle(account.idToken!!)
              } catch (e: ApiException) {
                  Log.w(TAG, "Google sign in failed", e)
              }
          }
      }

      private fun firebaseAuthWithGoogle(idToken: String) {
          val credential = GoogleAuthProvider.getCredential(idToken, null)
          Firebase.auth.signInWithCredential(credential)
              .addOnCompleteListener(this) { task ->
                  if (task.isSuccessful) {
                      // El inicio de sesión con Google fue exitoso, puedes ir a la siguiente actividad.
                 }
          }
      }