Google 致力于为黑人社区推动种族平等。查看具体举措
This page was translated by the Cloud Translation API.
Switch to English

অ্যান্ড্রয়েডে গুগল সাইন-ইন ব্যবহার করে প্রমাণীকরণ করুন

আপনার অ্যাপগুলিতে গুগল সাইন-ইনকে সংহত করে আপনি আপনার ব্যবহারকারীদের ফায়ারব্যাসের মাধ্যমে তাদের গুগল অ্যাকাউন্টগুলি ব্যবহার করে প্রমাণীকরণ করতে পারবেন।

তুমি শুরু করার আগে

  1. আপনি যদি ইতিমধ্যে না থাকেন তবে আপনার অ্যান্ড্রয়েড প্রকল্পে ফায়ারবেস যুক্ত করুন

  2. ফায়ারবেস অ্যান্ড্রয়েড BoM ব্যবহার করে, আপনার মডিউল (অ্যাপ-স্তর) গ্রেড ফাইল (সাধারণত app/build.gradle . app/build.gradle ) app/build.gradle প্রমাণীকরণ অ্যান্ড্রয়েড গ্রন্থাগারের জন্য নির্ভরতা ঘোষণা করুন।

    এছাড়াও, ফায়ারবেস প্রমাণীকরণ স্থাপনের অংশ হিসাবে, আপনাকে গুগল প্লে পরিষেবাগুলি এসডিকে আপনার অ্যাপে যুক্ত করতে হবে।

    জাভা

    dependencies {
        // Import the BoM for the Firebase platform
        implementation platform('com.google.firebase:firebase-bom:27.1.0')
    
        // Declare the dependency for the Firebase Authentication library
        // When using the BoM, you don't specify versions in Firebase library dependencies
        implementation 'com.google.firebase:firebase-auth'
    // Also declare the dependency for the Google Play services library and specify its version implementation 'com.google.android.gms:play-services-auth:19.0.0'
    }

    ফায়ারবেস অ্যান্ড্রয়েড BoM ব্যবহার করে, আপনার অ্যাপ্লিকেশন সর্বদা ফায়ারবেস অ্যান্ড্রয়েড লাইব্রেরির সামঞ্জস্যপূর্ণ সংস্করণ ব্যবহার করবে।

    (বিকল্প) বিওএম ব্যবহার না করে ফায়ারবেস লাইব্রেরি নির্ভরতা ঘোষণা করুন

    আপনি যদি ফায়ারবেস BoM ব্যবহার না করা চয়ন করেন তবে আপনাকে অবশ্যই প্রতিটি ফায়ারবেস লাইব্রেরি সংস্করণকে তার নির্ভরতা লাইনে নির্দিষ্ট করতে হবে।

    মনে রাখবেন যে আপনি যদি আপনার অ্যাপ্লিকেশনটিতে একাধিক ফায়ারবেস লাইব্রেরি ব্যবহার করেন তবে আমরা লাইব্রেরি সংস্করণগুলি পরিচালনা করতে BoM ব্যবহার করার জন্য সুপারিশ করি, যা নিশ্চিত করে যে সমস্ত সংস্করণ সামঞ্জস্যপূর্ণ।

    dependencies {
        // Declare the dependency for the Firebase Authentication library
        // When NOT using the BoM, you must specify versions in Firebase library dependencies
        implementation 'com.google.firebase:firebase-auth:20.0.4'
    // Also declare the dependency for the Google Play services library and specify its version implementation 'com.google.android.gms:play-services-auth:19.0.0'
    }

    কোটলিন + কেটিএক্স

    04 বি3602150

    ফায়ারবেস অ্যান্ড্রয়েড BoM ব্যবহার করে, আপনার অ্যাপ্লিকেশন সর্বদা ফায়ারবেস অ্যান্ড্রয়েড লাইব্রেরির সামঞ্জস্যপূর্ণ সংস্করণ ব্যবহার করবে।

    (বিকল্প) বিওএম ব্যবহার না করে ফায়ারবেস লাইব্রেরি নির্ভরতা ঘোষণা করুন

    আপনি যদি ফায়ারবেস BoM ব্যবহার না করা চয়ন করেন তবে আপনাকে অবশ্যই প্রতিটি ফায়ারবেস লাইব্রেরি সংস্করণকে তার নির্ভরতা লাইনে নির্দিষ্ট করতে হবে।

    মনে রাখবেন যে আপনি যদি আপনার অ্যাপ্লিকেশনটিতে একাধিক ফায়ারবেস লাইব্রেরি ব্যবহার করেন তবে আমরা লাইব্রেরি সংস্করণগুলি পরিচালনা করতে BoM ব্যবহার করার জন্য সুপারিশ করি, যা নিশ্চিত করে যে সমস্ত সংস্করণ সামঞ্জস্যপূর্ণ।

    dependencies {
        // Declare the dependency for the Firebase Authentication library
        // When NOT using the BoM, you must specify versions in Firebase library dependencies
        implementation 'com.google.firebase:firebase-auth-ktx:20.0.4'
    // Also declare the dependency for the Google Play services library and specify its version implementation 'com.google.android.gms:play-services-auth:19.0.0'
    }

  3. আপনি যদি এখনও আপনার অ্যাপের SHA-1 ফিঙ্গারপ্রিন্ট নির্দিষ্ট না করে থাকেন তবে ফায়ারবেস কনসোলের সেটিংস পৃষ্ঠা থেকে এটি করুন। আপনার অ্যাপের SHA-1 ফিঙ্গারপ্রিন্ট কীভাবে পাবেন সে সম্পর্কে বিশদ জানতে আপনার ক্লায়েন্টকে প্রমাণীকরণ করুন।

  4. ফায়ারবেস কনসোলে গুগল সাইন-ইন সক্ষম করুন:
    1. ফায়ারবেস কনসোলে , আথ বিভাগটি খুলুন।
    2. সাইন ইন পদ্ধতি ট্যাবে, গুগল সাইন-ইন পদ্ধতি সক্ষম করুন এবং সংরক্ষণ করুন ক্লিক করুন

ফায়ারবেস দিয়ে প্রমাণীকরণ

  1. আপনার অ্যান্ড্রয়েড অ্যাপ্লিকেশন পৃষ্ঠাতে গুগল সাইন ইন ইন্টিগ্রেটেডের পদক্ষেপগুলি অনুসরণ করে আপনার অ্যাপ্লিকেশনটিতে গুগল সাইন ইন একীভূত করুন । আপনি যখন GoogleSignInOptions অবজেক্টটি কনফিগার করেন, তখন অনুরোধ requestIdToken :

    জাভা

    // Configure Google Sign In
    GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
            .requestIdToken(getString(R.string.default_web_client_id))
            .requestEmail()
            .build();
    
    mGoogleSignInClient = GoogleSignIn.getClient(this, gso);

    কোটলিন + কেটিএক্স

    // Configure Google Sign In
    val gso = GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
            .requestIdToken(getString(R.string.default_web_client_id))
            .requestEmail()
            .build()
    
    googleSignInClient = GoogleSignIn.getClient(this, gso)
    আপনাকে অবশ্যই আপনার সার্ভারের ক্লায়েন্ট আইডিটি requestIdToken পদ্ধতিতে পাস করতে হবে। OAuth 2.0 ক্লায়েন্ট আইডি সন্ধান করতে:
    1. জিসিপি কনসোলে শংসাপত্র পৃষ্ঠাটি খুলুন।
    2. ওয়েব অ্যাপ্লিকেশন ধরণের ক্লায়েন্ট আইডি হ'ল আপনার ব্যাকেন্ড সার্ভারের OAuth 2.0 ক্লায়েন্ট আইডি।
    আপনি গুগল সাইন ইন সংহত করার পরে, আপনার সাইন ইন ক্রিয়াকলাপে নিম্নলিখিতগুলির মতো কোড রয়েছে:

    জাভা

    private void signIn() {
        Intent signInIntent = mGoogleSignInClient.getSignInIntent();
        startActivityForResult(signInIntent, RC_SIGN_IN);
    }
    @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
    
        // Result returned from launching the Intent from GoogleSignInApi.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);
                Log.d(TAG, "firebaseAuthWithGoogle:" + account.getId());
                firebaseAuthWithGoogle(account.getIdToken());
            } catch (ApiException e) {
                // Google Sign In failed, update UI appropriately
                Log.w(TAG, "Google sign in failed", e);
            }
        }
    }

    কোটলিন + কেটিএক্স

    private fun signIn() {
        val signInIntent = googleSignInClient.signInIntent
        startActivityForResult(signInIntent, RC_SIGN_IN)
    }
    override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
        super.onActivityResult(requestCode, resultCode, data)
    
        // Result returned from launching the Intent from GoogleSignInApi.getSignInIntent(...);
        if (requestCode == RC_SIGN_IN) {
            val task = GoogleSignIn.getSignedInAccountFromIntent(data)
            try {
                // Google Sign In was successful, authenticate with Firebase
                val account = task.getResult(ApiException::class.java)!!
                Log.d(TAG, "firebaseAuthWithGoogle:" + account.id)
                firebaseAuthWithGoogle(account.idToken!!)
            } catch (e: ApiException) {
                // Google Sign In failed, update UI appropriately
                Log.w(TAG, "Google sign in failed", e)
            }
        }
    }
  2. আপনার সাইন-ইন ক্রিয়াকলাপের onCreate পদ্ধতিতে, FirebaseAuth অবজেক্টের ভাগ করা উদাহরণটি পান:

    জাভা

    private FirebaseAuth mAuth;
    // ...
    // Initialize Firebase Auth
    mAuth = FirebaseAuth.getInstance();

    কোটলিন + কেটিএক্স

    private lateinit var auth: FirebaseAuth
    // ...
    // Initialize Firebase Auth
    auth = Firebase.auth
  3. আপনার ক্রিয়াকলাপ সূচনা করার সময়, ব্যবহারকারী বর্তমানে সাইন ইন আছে কিনা তা পরীক্ষা করে দেখুন:

    জাভা

    @Override
    public void onStart() {
        super.onStart();
        // Check if user is signed in (non-null) and update UI accordingly.
        FirebaseUser currentUser = mAuth.getCurrentUser();
        updateUI(currentUser);
    }

    কোটলিন + কেটিএক্স

    override fun onStart() {
        super.onStart()
        // Check if user is signed in (non-null) and update UI accordingly.
        val currentUser = auth.currentUser
        updateUI(currentUser)
    }
  4. কোনও ব্যবহারকারী সাফল্যের সাথে সাইন ইন করার পরে, GoogleSignInAccount অবজেক্ট থেকে আইডি টোকেন পান, এটি GoogleSignInAccount শংসাপত্রের জন্য বিনিময় করুন এবং GoogleSignInAccount শংসাপত্র ব্যবহার করে ফায়ারবেস দিয়ে প্রমাণীকরণ করুন:

    জাভা

    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
                            Log.d(TAG, "signInWithCredential:success");
                            FirebaseUser user = mAuth.getCurrentUser();
                            updateUI(user);
                        } else {
                            // If sign in fails, display a message to the user.
                            Log.w(TAG, "signInWithCredential:failure", task.getException());
                            updateUI(null);
                        }
                    }
                });
    }

    কোটলিন + কেটিএক্স

    private fun firebaseAuthWithGoogle(idToken: String) {
        val credential = GoogleAuthProvider.getCredential(idToken, null)
        auth.signInWithCredential(credential)
                .addOnCompleteListener(this) { task ->
                    if (task.isSuccessful) {
                        // Sign in success, update UI with the signed-in user's information
                        Log.d(TAG, "signInWithCredential:success")
                        val user = auth.currentUser
                        updateUI(user)
                    } else {
                        // If sign in fails, display a message to the user.
                        Log.w(TAG, "signInWithCredential:failure", task.exception)
                        updateUI(null)
                    }
                }
    }
    যদি সাইন ইন signInWithCredential কল সফল হয় আপনি ব্যবহারকারীর অ্যাকাউন্ট ডেটা পেতে getCurrentUser পদ্ধতিটি ব্যবহার করতে পারেন।

পরবর্তী পদক্ষেপ

কোনও ব্যবহারকারী প্রথমবার সাইন ইন করার পরে, একটি নতুন ব্যবহারকারীর অ্যাকাউন্ট তৈরি করা হয় এবং শংসাপত্রগুলির সাথে লিঙ্ক করা হয় — সেটি হল, ব্যবহারকারীর নাম এবং পাসওয়ার্ড, ফোন নম্বর, বা লেখক সরবরাহকারীর তথ্য - ব্যবহারকারী সাইন ইন করে। এই নতুন অ্যাকাউন্টটি আপনার ফায়ারবেস প্রকল্পের অংশ হিসাবে সঞ্চিত রয়েছে এবং ব্যবহারকারীরা কীভাবে সাইন ইন করে তা নির্বিশেষে আপনার প্রকল্পের প্রতিটি অ্যাপ্লিকেশন জুড়ে একটি ব্যবহারকারীকে সনাক্ত করতে ব্যবহার করা যেতে পারে।

  • আপনার অ্যাপ্লিকেশনগুলিতে আপনি FirebaseUser অবজেক্ট থেকে ব্যবহারকারীর প্রাথমিক প্রোফাইল তথ্য পেতে পারেন। ব্যবহারকারীদের পরিচালনা দেখুন।

  • আপনার ফায়ারবেস রিয়েলটাইম ডেটাবেস এবং ক্লাউড স্টোরেজ সুরক্ষা বিধিগুলিতে , আপনি auth ভেরিয়েবল থেকে সাইন ইন থাকা ব্যবহারকারীর অনন্য ব্যবহারকারীর আইডি পেতে পারেন এবং ব্যবহারকারী কোন ডেটা অ্যাক্সেস করতে পারে তা নিয়ন্ত্রণ করতে এটি ব্যবহার করতে পারেন।

আপনি ব্যবহারকারীদের বিদ্যমান ব্যবহারকারীর অ্যাকাউন্টের সাথে প্রমাণীকরণের সরবরাহকারীর শংসাপত্রগুলি সংযুক্ত করে একাধিক প্রমাণীকরণ সরবরাহকারী ব্যবহার করে আপনার অ্যাপ্লিকেশনটিতে সাইন ইন করার অনুমতি দিতে পারেন

কোনও ব্যবহারকারীকে সাইন আউট করতে, signOut কল signOut :

জাভা

FirebaseAuth.getInstance().signOut();

কোটলিন + কেটিএক্স

Firebase.auth.signOut()