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

অ্যানড্রয়েডে একাউন্টে একাধিক প্রবন্ধ সরবরাহকারীকে লিঙ্ক করুন

আপনি ব্যবহারকারীদের বিদ্যমান ব্যবহারকারীর অ্যাকাউন্টের সাথে প্রমাণীকরণের সরবরাহকারীর শংসাপত্রগুলি সংযুক্ত করে একাধিক প্রমাণীকরণ সরবরাহকারী ব্যবহার করে আপনার অ্যাপ্লিকেশনটিতে সাইন ইন করতে পারবেন can ব্যবহারকারীরা সাইন ইন করতে ব্যবহার করে এমন প্রমাণীকরণ সরবরাহকারীর নির্বিশেষে একই ফায়ারবেস ব্যবহারকারী আইডি দ্বারা সনাক্তযোগ্য example উদাহরণস্বরূপ, কোনও ব্যবহারকারী যা পাসওয়ার্ড দিয়ে সাইন ইন করেছেন তা গুগল অ্যাকাউন্টে লিঙ্ক করতে পারে এবং ভবিষ্যতে উভয় পদ্ধতিতে সাইন ইন করতে পারে। অথবা, একজন অনামী ব্যবহারকারী কোনও ফেসবুক অ্যাকাউন্টে লিঙ্ক করতে পারে এবং তারপরে, পরে আপনার অ্যাপ্লিকেশনটি ব্যবহার চালিয়ে যেতে ফেসবুকের সাথে সাইন ইন করতে পারে।

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

আপনার অ্যাপ্লিকেশনটিতে দুই বা ততোধিক প্রমাণীকরণ সরবরাহকারী (সম্ভবত বেনামে প্রমাণীকরণ সহ) সমর্থন যোগ করুন।

বিদ্যমান ব্যবহারকারী অ্যাকাউন্টে লেখক সরবরাহকারীর শংসাপত্রগুলি লিঙ্ক করতে:

  1. কোনও প্রমাণীকরণ প্রদানকারী বা পদ্ধতি ব্যবহার করে ব্যবহারকারীকে সাইন ইন করুন।
  2. নতুন প্রমাণীকরণ সরবরাহকারীর জন্য সাইন-ইন প্রবাহটি সম্পূর্ণ করুন, তবে FirebaseAuth.signInWith পদ্ধতিগুলির মধ্যে একটিতে কল করে তা অন্তর্ভুক্ত নয়। উদাহরণস্বরূপ, ব্যবহারকারীর গুগল আইডি টোকেন, ফেসবুক অ্যাক্সেস টোকেন, বা ইমেল এবং পাসওয়ার্ড পান।
  3. নতুন প্রমাণীকরণ সরবরাহকারীর জন্য একটি AuthCredential পান:

    গুগল সাইন ইন

    জাভা

    AuthCredential credential = GoogleAuthProvider.getCredential(googleIdToken, null);

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

    val credential = GoogleAuthProvider.getCredential(googleIdToken, null)
    ফেসবুক লগইন

    জাভা

    AuthCredential credential = FacebookAuthProvider.getCredential(token.getToken());

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

    07aa87090
    ইমেল-পাসওয়ার্ড সাইন ইন

    জাভা

    AuthCredential credential = EmailAuthProvider.getCredential(email, password);

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

    val credential = EmailAuthProvider.getCredential(email, password)
  4. স্বাক্ষরিত ব্যবহারকারীর linkWithCredential পদ্ধতিতে AuthCredential অবজেক্টটি পাস করুন:

    জাভা

    mAuth.getCurrentUser().linkWithCredential(credential)
            .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
                @Override
                public void onComplete(@NonNull Task<AuthResult> task) {
                    if (task.isSuccessful()) {
                        Log.d(TAG, "linkWithCredential:success");
                        FirebaseUser user = task.getResult().getUser();
                        updateUI(user);
                    } else {
                        Log.w(TAG, "linkWithCredential:failure", task.getException());
                        Toast.makeText(AnonymousAuthActivity.this, "Authentication failed.",
                                Toast.LENGTH_SHORT).show();
                        updateUI(null);
                    }
                }
            });

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

    auth.currentUser!!.linkWithCredential(credential)
            .addOnCompleteListener(this) { task ->
                if (task.isSuccessful) {
                    Log.d(TAG, "linkWithCredential:success")
                    val user = task.result?.user
                    updateUI(user)
                } else {
                    Log.w(TAG, "linkWithCredential:failure", task.exception)
                    Toast.makeText(baseContext, "Authentication failed.",
                            Toast.LENGTH_SHORT).show()
                    updateUI(null)
                }
            }

    শংসাপত্রগুলি ইতিমধ্যে অন্য ব্যবহারকারীর অ্যাকাউন্টের সাথে লিঙ্ক করা থাকলে linkWithCredential কলটি ব্যর্থ হবে। এই পরিস্থিতিতে আপনাকে অবশ্যই আপনার অ্যাপ্লিকেশনের জন্য উপযুক্ত হিসাবে অ্যাকাউন্ট এবং সম্পর্কিত ডেটা মার্জ করতে হবে:

    জাভা

    FirebaseUser prevUser = FirebaseAuth.getInstance().getCurrentUser();
    mAuth.signInWithCredential(credential)
            .addOnCompleteListener(new OnCompleteListener<AuthResult>() {
                @Override
                public void onComplete(@NonNull Task<AuthResult> task) {
                    FirebaseUser currentUser = task.getResult().getUser();
                    // Merge prevUser and currentUser accounts and data
                    // ...
                }
            });

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

    val prevUser = auth.currentUser
    auth.signInWithCredential(credential)
            .addOnSuccessListener { result ->
                val currentUser = result.user
                // Merge prevUser and currentUser accounts and data
                // ...
            }
            .addOnFailureListener {
                // ...
            }

যদি linkWithCredential কল সফল হয়, ব্যবহারকারী এখন যে কোনও সংযুক্ত প্রমাণীকরণ সরবরাহকারী ব্যবহার করে সাইন ইন করতে এবং একই ফায়ারবেস ডেটা অ্যাক্সেস করতে পারে।

আপনি কোনও অ্যাকাউন্ট থেকে কোনও লেখক সরবরাহকারীকে লিঙ্কমুক্ত করতে পারেন, যাতে ব্যবহারকারী আর সেই সরবরাহকারীর সাথে সাইন ইন করতে না পারে।

কোনও ব্যবহারকারী অ্যাকাউন্ট থেকে কোনও লেখক সরবরাহকারীকে লিঙ্কমুক্ত করতে, সরবরাহকারী unlink পদ্ধতিতে পাস করুন। আপনি getProviderData কল করে getProviderData ব্যবহারকারীর সাথে getProviderData প্রমাণীকরণের সরবরাহকারী আইডি পেতে পারেন।

জাভা

mAuth.getCurrentUser().unlink(providerId)
        .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
            @Override
            public void onComplete(@NonNull Task<AuthResult> task) {
                if (task.isSuccessful()) {
                    // Auth provider unlinked from account
                    // ...
                }
            }
        });

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

Firebase.auth.currentUser!!.unlink(providerId)
        .addOnCompleteListener(this) { task ->
            if (task.isSuccessful) {
                // Auth provider unlinked from account
                // ...
            }
        }