شما میتوانید Firebase Authentication برای ایجاد و استفاده از حسابهای کاربری ناشناس موقت برای احراز هویت با Firebase استفاده کنید. این حسابهای کاربری ناشناس موقت میتوانند برای کاربرانی که هنوز در برنامه شما ثبت نام نکردهاند، جهت کار با دادههای محافظت شده توسط قوانین امنیتی استفاده شوند. اگر یک کاربر ناشناس تصمیم به ثبت نام در برنامه شما بگیرد، میتوانید اطلاعات ورود او را به حساب کاربری ناشناس پیوند دهید تا بتواند در جلسات آینده با دادههای محافظت شده خود به کار خود ادامه دهد.
قبل از اینکه شروع کنی
- فایربیس را به پروژه ++C خود اضافه کنید .
- اگر هنوز برنامه خود را به پروژه Firebase خود متصل نکردهاید، این کار را از کنسول Firebase انجام دهید.
- فعال کردن احراز هویت ناشناس:
- در کنسول Firebase ، بخش Auth را باز کنید.
- در صفحه روشهای ورود ، روش ورود ناشناس را فعال کنید.
- اختیاری : اگر پروژه خود را به Firebase Authentication with Identity Platform ارتقا دادهاید، میتوانید پاکسازی خودکار را فعال کنید. وقتی این تنظیم را فعال میکنید، حسابهای ناشناس قدیمیتر از 30 روز به طور خودکار حذف میشوند. در پروژههایی که پاکسازی خودکار فعال است، احراز هویت ناشناس دیگر در محدودیتهای استفاده یا سهمیههای صورتحساب محاسبه نمیشود. به پاکسازی خودکار مراجعه کنید.
احراز هویت با فایربیس به صورت ناشناس
وقتی کاربری که از سیستم خارج شده و از آن خارج شده است از یک ویژگی برنامه که نیاز به احراز هویت با 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::auth::Authرا برایfirebase::Appخود دریافت کنید. یک نگاشت یک به یک بین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);
شیء
auth::Credentialرا به متدLinkWithCredentialکاربر در حال ورود به سیستم ارسال کنید:// 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 اجازه میدهید حسابهای ناشناس قدیمیتر از 30 روز را به طور خودکار حذف کند. در پروژههایی که پاکسازی خودکار فعال است، احراز هویت ناشناس در محدودیتهای استفاده یا سهمیههای صورتحساب محاسبه نمیشود.
- هر حساب کاربری ناشناسی که پس از فعال کردن پاکسازی خودکار ایجاد شود، ممکن است هر زمان پس از 30 روز پس از ایجاد، به طور خودکار حذف شود.
- حسابهای کاربری ناشناس موجود، ۳۰ روز پس از فعال کردن قابلیت پاکسازی خودکار، واجد شرایط حذف خودکار خواهند بود.
- اگر پاکسازی خودکار را خاموش کنید، هر حساب ناشناسی که برای حذف برنامهریزی شده باشد، همچنان در برنامه حذف باقی خواهد ماند.
- اگر یک حساب کاربری ناشناس را با پیوند دادن آن به هر روش ورود به سیستم «ارتقاء» دهید، حساب به طور خودکار حذف نمیشود.
اگر میخواهید قبل از فعال کردن این ویژگی، ببینید چند کاربر تحت تأثیر قرار میگیرند، و پروژه خود را به Firebase Authentication with Identity Platform ارتقا دادهاید، میتوانید در Cloud Logging بر اساس is_anon فیلتر کنید.
مراحل بعدی
اکنون که کاربران میتوانند با Firebase احراز هویت شوند، میتوانید دسترسی آنها به دادههای موجود در پایگاه داده Firebase خود را با استفاده از قوانین Firebase کنترل کنید.