আপনি Firebase Authentication ব্যবহার করে Firebase-এর সাথে প্রমাণীকরণের জন্য অস্থায়ী বেনামী অ্যাকাউন্ট তৈরি ও ব্যবহার করতে পারেন। এই অস্থায়ী বেনামী অ্যাকাউন্টগুলো সেইসব ব্যবহারকারীদের নিরাপত্তা নিয়ম দ্বারা সুরক্ষিত ডেটা নিয়ে কাজ করার অনুমতি দিতে ব্যবহার করা যেতে পারে, যারা এখনও আপনার অ্যাপে সাইন আপ করেননি। যদি কোনো বেনামী ব্যবহারকারী আপনার অ্যাপে সাইন আপ করার সিদ্ধান্ত নেন, তাহলে আপনি তাদের সাইন-ইন ক্রেডেনশিয়ালগুলো বেনামী অ্যাকাউন্টের সাথে লিঙ্ক করতে পারেন, যাতে তারা ভবিষ্যতের সেশনগুলোতেও তাদের সুরক্ষিত ডেটা নিয়ে কাজ চালিয়ে যেতে পারেন।
শুরু করার আগে
- আপনার C++ প্রজেক্টে Firebase যোগ করুন ।
- আপনি যদি এখনও আপনার অ্যাপটিকে আপনার ফায়ারবেস প্রজেক্টের সাথে সংযুক্ত না করে থাকেন, তাহলে Firebase কনসোল থেকে তা করে নিন।
- বেনামী প্রমাণীকরণ সক্ষম করুন:
- Firebase কনসোলে , Auth সেকশনটি খুলুন।
- সাইন-ইন পদ্ধতি পেজে, বেনামী সাইন-ইন পদ্ধতিটি সক্রিয় করুন।
- ঐচ্ছিক : আপনি যদি আপনার প্রজেক্টকে Firebase Authentication with Identity Platform এ আপগ্রেড করে থাকেন, তাহলে আপনি অটোমেটিক ক্লিন-আপ চালু করতে পারেন। আপনি যখন এই সেটিংটি চালু করবেন, তখন ৩০ দিনের বেশি পুরোনো অ্যানোনিমাস অ্যাকাউন্টগুলো স্বয়ংক্রিয়ভাবে মুছে ফেলা হবে। যে প্রজেক্টগুলোতে অটোমেটিক ক্লিন-আপ চালু করা আছে, সেখানে অ্যানোনিমাস অথেন্টিকেশন আর ব্যবহারের সীমা বা বিলিং কোটার জন্য গণনা করা হবে না। অটোমেটিক ক্লিন-আপ দেখুন।
ফায়ারবেসের মাধ্যমে বেনামে প্রমাণীকরণ করুন
যখন কোনো সাইন-আউট করা ব্যবহারকারী অ্যাপের এমন কোনো ফিচার ব্যবহার করেন যার জন্য Firebase-এর মাধ্যমে অথেনটিকেশন প্রয়োজন, তখন নিম্নলিখিত ধাপগুলো সম্পন্ন করে ব্যবহারকারীকে বেনামে সাইন ইন করান:
Auth ক্লাসটি সকল API কলের প্রবেশদ্বার।- Auth এবং App হেডার ফাইলগুলো যোগ করুন:
#include "firebase/app.h" #include "firebase/auth.h"
- আপনার ইনিশিয়ালাইজেশন কোডে একটি
firebase::Appক্লাস তৈরি করুন।#if defined(__ANDROID__) firebase::App* app = firebase::App::Create(firebase::AppOptions(), my_jni_env, my_activity); #else firebase::App* app = firebase::App::Create(firebase::AppOptions()); #endif // defined(__ANDROID__)
- আপনার
firebase::Appজন্যfirebase::auth::Authক্লাসটি অ্যাকোয়ার করুন।AppএবংAuthমধ্যে একটি এক-এক ম্যাপিং রয়েছে।firebase::auth::Auth* auth = firebase::auth::Auth::GetAuth(app);
Auth::SignInAnonymously কল করুন। firebase::Future<firebase::auth::AuthResult> result = auth->SignInAnonymously();
Auth::SignInAnonymouslyLastResult ব্যবহার করে ফলাফল পরীক্ষা করতে পারেন।firebase::Future<firebase::auth::AuthResult> result = auth->SignInAnonymouslyLastResult(); if (result.status() == firebase::kFutureStatusComplete) { if (result.error() == firebase::auth::kAuthErrorNone) { firebase::auth::AuthResult auth_result = *result.result(); printf("Sign in succeeded for `%s`\n", auth_result.user.display_name().c_str()); } else { printf("Sign in failed with error '%s'\n", result.error_message()); } }
একটি বেনামী অ্যাকাউন্টকে স্থায়ী অ্যাকাউন্টে রূপান্তর করুন
যখন কোনো অপরিচিত ব্যবহারকারী আপনার অ্যাপে সাইন আপ করেন, তখন আপনি হয়তো তাকে তার নতুন অ্যাকাউন্ট দিয়ে কাজ চালিয়ে যাওয়ার সুযোগ দিতে চাইতে পারেন—উদাহরণস্বরূপ, ব্যবহারকারী সাইন আপ করার আগে তার শপিং কার্টে যে আইটেমগুলো যোগ করেছিলেন, সেগুলো আপনি তার নতুন অ্যাকাউন্টের শপিং কার্টেও উপলব্ধ করতে চাইতে পারেন। এটি করার জন্য, নিম্নলিখিত ধাপগুলো সম্পন্ন করুন:
- যখন ব্যবহারকারী সাইন আপ করেন, তখন
Auth::SignInWithমেথডগুলোর কোনো একটি কল করা পর্যন্ত (কিন্তু সেটি বাদে) ব্যবহারকারীর অথেনটিকেশন প্রোভাইডারের জন্য সাইন-ইন প্রক্রিয়াটি সম্পন্ন করুন। উদাহরণস্বরূপ, ব্যবহারকারীর গুগল আইডি টোকেন, ফেসবুক অ্যাক্সেস টোকেন, অথবা ইমেল অ্যাড্রেস এবং পাসওয়ার্ড সংগ্রহ করুন। নতুন অথেন্টিকেশন প্রোভাইডারের জন্য একটি
গুগল সাইন-ইনauth::Credentialসংগ্রহ করুন: ফেসবুক লগইনfirebase::auth::Credential credential = firebase::auth::GoogleAuthProvider::GetCredential(google_id_token, nullptr);
ইমেল-পাসওয়ার্ড সাইন-ইনfirebase::auth::Credential credential = firebase::auth::FacebookAuthProvider::GetCredential(access_token);
firebase::auth::Credential credential = firebase::auth::EmailAuthProvider::GetCredential(email, password);
সাইন-ইন করা ব্যবহারকারীর
LinkWithCredentialমেথডেauth::Credentialঅবজেক্টটি পাস করুন:// Link the new credential to the currently active user. firebase::auth::User current_user = auth->current_user(); firebase::Future<firebase::auth::AuthResult> result = current_user.LinkWithCredential(credential);
LinkWithCredential কলটি সফল হলে, ব্যবহারকারীর নতুন অ্যাকাউন্টটি বেনামী অ্যাকাউন্টের Firebase ডেটা অ্যাক্সেস করতে পারবে।
স্বয়ংক্রিয় পরিষ্কার-পরিচ্ছন্নতা
আপনি যদি আপনার প্রজেক্টকে Firebase Authentication with Identity Platform এ আপগ্রেড করে থাকেন, তাহলে আপনি Firebase কনসোলে অটোমেটিক ক্লিন-আপ চালু করতে পারেন। এই ফিচারটি চালু করলে, আপনি ফায়ারবেসকে ৩০ দিনের বেশি পুরোনো অ্যানোনিমাস অ্যাকাউন্টগুলো স্বয়ংক্রিয়ভাবে মুছে ফেলার অনুমতি দেন। যেসব প্রজেক্টে অটোমেটিক ক্লিন-আপ চালু করা আছে, সেখানে অ্যানোনিমাস অথেন্টিকেশন ব্যবহারের সীমা বা বিলিং কোটার গণনায় অন্তর্ভুক্ত হবে না।
- স্বয়ংক্রিয় পরিচ্ছন্নতা চালু করার পর তৈরি করা যেকোনো বেনামী অ্যাকাউন্ট, তৈরির ৩০ দিন পর যেকোনো সময় স্বয়ংক্রিয়ভাবে মুছে যেতে পারে।
- স্বয়ংক্রিয় পরিচ্ছন্নতা চালু করার ৩০ দিন পর বিদ্যমান বেনামী অ্যাকাউন্টগুলো স্বয়ংক্রিয়ভাবে মুছে ফেলার জন্য যোগ্য বলে বিবেচিত হবে।
- আপনি যদি স্বয়ংক্রিয় পরিষ্করণ বন্ধ করে দেন, তাহলে মুছে ফেলার জন্য নির্ধারিত যেকোনো বেনামী অ্যাকাউন্ট সেই নির্ধারিত অবস্থাতেই থাকবে।
- আপনি যদি কোনো বেনামী অ্যাকাউন্টকে যেকোনো সাইন-ইন পদ্ধতির সাথে লিঙ্ক করে "আপগ্রেড" করেন, তাহলে অ্যাকাউন্টটি স্বয়ংক্রিয়ভাবে মুছে যাবে না।
এই ফিচারটি চালু করার আগে কতজন ব্যবহারকারী প্রভাবিত হবেন তা যদি আপনি দেখতে চান, এবং আপনার প্রজেক্টটি Firebase Authentication with Identity Platform এ আপগ্রেড করে থাকেন, তাহলে আপনি ‘ক্লাউড লগিং’ -এ is_anon দ্বারা ফিল্টার করতে পারেন।
পরবর্তী পদক্ষেপ
এখন যেহেতু ব্যবহারকারীরা ফায়ারবেসের মাধ্যমে প্রমাণীকরণ করতে পারে, আপনি ফায়ারবেস রুলস ব্যবহার করে আপনার ফায়ারবেস ডাটাবেসে থাকা ডেটাতে তাদের অ্যাক্সেস নিয়ন্ত্রণ করতে পারেন।