Integrating Google Sign-In in Android Apps

晨曦微光 2021-04-17 ⋅ 18 阅读

With the increasing popularity of Google as an identity provider, it has become essential for Android app developers to integrate Google Sign-In functionality into their applications. In this blog post, we will explore how to integrate Google Sign-In in Android apps using Kotlin and Java.

Prerequisites

Before we begin, make sure you have the following prerequisites:

  1. An Android development environment setup with either Kotlin or Java.
  2. A Google API Console project created with the necessary credentials for Google Sign-In.

Steps to integrate Google Sign-In in Android Apps

Step 1: Add the necessary dependencies

Open your app-level build.gradle file and add the following dependencies:

implementation 'com.google.android.gms:play-services-auth:19.2.0'

Sync your project to make sure the dependencies are properly added.

Step 2: Configure the Google API Console project

To enable sign-in with Google, you need to create a project in the Google API Console and generate the necessary credentials. Follow this guide to create a project and configure the necessary credentials.

Remember to add your application's SHA-1 fingerprint to the project for authentication.

Step 3: Add the Google Sign-In Button to your layout

In your XML layout file, add the following code to include the Google Sign-In Button:

<com.google.android.gms.common.SignInButton
    android:id="@+id/signInButton"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:layout_marginTop="16dp"
    android:layout_marginBottom="16dp" />

Step 4: Initialize the Google Sign-In Client

In your activity or fragment, initialize the Google Sign-In client in the onCreate() method:

private lateinit var googleSignInClient: GoogleSignInClient

// ...

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)

    val gso = GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
        .requestEmail()
        .build()

    googleSignInClient = GoogleSignIn.getClient(this, gso)
}

Step 5: Add Sign-In functionality

Add the following code to handle the Google Sign-In button click:

signInButton.setOnClickListener {
    val signInIntent = googleSignInClient.signInIntent
    startActivityForResult(signInIntent, RC_SIGN_IN)
}

Handle the sign-in result in onActivityResult():

override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
    super.onActivityResult(requestCode, resultCode, data)
    if (requestCode == RC_SIGN_IN) {
        val task = GoogleSignIn.getSignedInAccountFromIntent(data)
        handleSignInResult(task)
    }
}

Step 6: Handle Sign-In Result

Implement the handleSignInResult() function to process the sign-in result:

private fun handleSignInResult(completedTask: Task<GoogleSignInAccount>) {
    try {
        val account = completedTask.getResult(ApiException::class.java)
        // Signed in successfully, handle the user's account details
        val displayName = account?.displayName
        val email = account?.email
        val photoUrl = account?.photoUrl
        
        // TODO: Do something with the account details
        
    } catch (e: ApiException) {
        // Sign in failed, handle the error
        Log.e(TAG, "Sign-in failed. Error code: ${e.statusCode}")
    }
}

That's it! You have successfully integrated Google Sign-In in your Android app.

Conclusion

Integrating Google Sign-In in Android apps provides users with a convenient and secure way to sign in. In this blog post, we explored the steps to integrate Google Sign-In functionality in Android apps using Kotlin and Java. Feel free to customize the implementation based on your app's requirements and enhance the user experience with additional features. Happy coding!


全部评论: 0

    我有话说: