Firebase Google 登录在 Android 上不显示详细同意屏幕

问题描述 投票:0回答:1

大家好

我目前正在致力于将 Google 登录集成到我的 Android 应用程序中。如提供的图像(用于上下文)所示,我的目标是实现特定的用户流程,并且我已经成功地实现了它。然而,我遇到了一个挑战:选择帐户时,系统会自动继续创建帐户,而不会显示同意屏幕,无论用户是新用户还是现有用户。

此行为跳过了用户体验中的关键步骤,即在创建帐户或登录之前应告知用户正在共享的数据并同意该数据。我正在寻求有关如何确保在 Google 登录过程中向用户正确显示同意屏幕的指导。

代码:

fun signInWithGoogle(activity: Activity, requestCode: Int) {
    val gso = GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
        .requestIdToken(CLIENT_ID)
        .requestEmail()
        .build()

    val googleSignInClient = GoogleSignIn.getClient(activity, gso)
    val signInIntent = googleSignInClient.signInIntent
    activity.startActivityForResult(signInIntent, requestCode)
}


private fun googleSignIn() {
    binding.googleSigninButton.setOnClickListener {
        EffectAnimation.bounceAnimation(it)
        val requestCode = GOOGLE_SIGN_IN_REQUEST_CODE
        loginViewModel.signInWithGoogle(this, requestCode)

    }
}



override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
    super.onActivityResult(requestCode, resultCode, data)
    if (requestCode == GOOGLE_SIGN_IN_REQUEST_CODE) { // The same request code you passed to signInWithGoogle
        val task = GoogleSignIn.getSignedInAccountFromIntent(data)
        try {
            val account = task.getResult(ApiException::class.java)!!
            loginViewModel.firebaseAuthWithGoogle(account.idToken!!)
        } catch (e: ApiException) {
           
        }
    }
}

注意:不是完整的代码。只是一个概述

我正在努力在用 Kotlin 开发的 Android 应用程序中使用 Google 登录来实现特定流程。我设想的过程如下:

提示用户选择 Google 帐户。 对于新用户,显示同意屏幕,详细说明所共享的信息(如附图所示)。 尽管我花了两天时间来解决这个问题并彻底审查了文档,但我尚未成功实现此流程。我的应用程序已经链接到 Google Cloud Platform,并且我已经配置了 OAuth 同意屏幕,但似乎有些问题。

我非常感谢社区的任何见解或指导。预先感谢您的协助。

P.S.:对于任何混乱,我们深表歉意;我决心解决这个问题,但遇到了障碍。

android firebase kotlin android-studio firebase-authentication
1个回答
0
投票

您的项目中是否包含 SHA1 和 SHA256 密钥?

如果没有,您需要从 Firebase 上的“项目概述”部分添加它们。

Firebase 概述 -> 项目设置 -> 常规 -> 添加指纹

© www.soinside.com 2019 - 2024. All rights reserved.