📌  相关文章
📜  使用Java在 Android 中使用 Firebase 身份验证进行 Google 签名(1)

📅  最后修改于: 2023-12-03 14:49:48.522000             🧑  作者: Mango

使用Java在 Android 中使用 Firebase 身份验证进行 Google 签名

Firebase 身份验证是一种用于为用户提供安全访问系统和服务的云认证解决方案。通过集成 Firebase 身份验证,您可以轻松地使用户以其 Google 帐户进行身份验证,并访问用户数据。在本文中,我们将介绍如何在 Android 应用程序中使用 Java 和 Firebase 身份验证进行 Google 签名。

第一步:添加 Firebase 到您的 Android 应用程序

要使用 Firebase 身份验证,您首先需要将 Firebase 添加到您的 Android 应用程序中。有多种方法可用于添加 Firebase,包括使用 Firebase 控制台和 Gradle。

使用 Firebase 控制台添加 Firebase
  1. 在浏览器中打开 Firebase 控制台,并使用自己的 Google 帐户登录。
  2. 单击“添加项目”并输入应用程序名称。
  3. 按照屏幕上的说明,如果您需要,请为您的应用启用 Firebase 分析和其他 Firebase 服务。
  4. 点击“注册应用程序”,然后按照屏幕上的说明下载和添加“google-services.json”文件。
使用 Gradle 添加 Firebase
  1. 打开您的项目的“build.gradle”文件,并在其中添加 Firebase 存储库的 URL。
buildscript {
    dependencies {
        classpath 'com.google.gms:google-services:4.3.10'
    }
}
  1. 打开您的应用程序的“build.gradle”文件,并在其中添加 Firebase 应用程序 ID 和密钥。确保您已经添加了适当的依赖项。例如:
apply plugin: 'com.android.application'
apply plugin: 'com.google.gms.google-services'

dependencies {
  // Firebase Authentication
  implementation 'com.google.firebase:firebase-auth:19.1.0'
}
第二步:使用 Firebase 身份验证进行 Google 签名

要使用 Firebase 身份验证进行 Google 签名,您需要执行以下步骤:

步骤1:配置 Firebase 项目
  1. 打开 Firebase 控制台,并选择您的项目。
  2. 点击“身份验证”选项卡,切换到“登录方式”选项卡。
  3. 启用谷歌身份验证器选项。
步骤2:在 Android 应用程序中实现 Google 登录

将以下代码片段添加到您的应用程序中,以启用 Google 登录:

GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
        .requestIdToken(getString(R.string.default_web_client_id))
        .requestEmail()
        .build();

GoogleSignInClient mGoogleSignInClient = GoogleSignIn.getClient(this, gso);
步骤3:启动 Google 登录

将以下代码片段添加到您的应用程序中,以在应用程序中启用 Google 登录:

Intent signInIntent = mGoogleSignInClient.getSignInIntent();
startActivityForResult(signInIntent, RC_SIGN_IN);

在您的活动的“onActivityResult”方法中,您应该调用 Firebase API 以验证用户并创建 Firebase 帐户。以下是这样做的示例代码:

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

    // Result returned from launching the Intent from GoogleSignInClient.getSignInIntent(...);
    if (requestCode == RC_SIGN_IN) {
        Task<GoogleSignInAccount> task = GoogleSignIn.getSignedInAccountFromIntent(data);
        try {
            // Google Sign In was successful, authenticate with Firebase
            GoogleSignInAccount account = task.getResult(ApiException.class);
            firebaseAuthWithGoogle(account.getIdToken());
        } catch (ApiException e) {
            // Google Sign In failed, update UI appropriately
        }
    }
}

private void firebaseAuthWithGoogle(String idToken) {
    AuthCredential credential = GoogleAuthProvider.getCredential(idToken, null);
    mAuth.signInWithCredential(credential)
            .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
                @Override
                public void onComplete(@NonNull Task<AuthResult> task) {
                    if (task.isSuccessful()) {
                        // Sign in success, update UI with the signed-in user's information
                        FirebaseUser user = mAuth.getCurrentUser();
                    } else {
                        // If sign in fails, display a message to the user.
                    }
                }
            });
}

完成这些步骤后,您应该能够使用 Java 和 Firebase 身份验证进行 Google 签名。

结论

在本文中,我们介绍了在 Android 中使用 Java 和 Firebase 身份验证进行 Google 签名的步骤。我们了解了如何添加 Firebase 到您的 Android 应用程序,并使用 Firebase 身份验证实现 Google 登录。我们希望这篇文章能够帮助您在 Android 应用程序中创建安全的登录体验。