با Firebase به صورت ناشناس با استفاده از C++ احراز هویت

می‌توانید از Firebase Authentication برای ایجاد و استفاده از حساب‌های ناشناس موقت برای احراز هویت با Firebase استفاده کنید. از این حساب‌های ناشناس موقت می‌توان برای اجازه دادن به کاربرانی که هنوز در برنامه شما ثبت نام نکرده‌اند استفاده کرد تا با داده‌های محافظت شده توسط قوانین امنیتی کار کنند. اگر یک کاربر ناشناس تصمیم گرفت در برنامه شما ثبت نام کند، می توانید اعتبار ورود به سیستم او را به حساب ناشناس پیوند دهید تا بتواند در جلسات بعدی با داده های محافظت شده خود کار کند.

قبل از اینکه شروع کنی

  1. Firebase را به پروژه C++ خود اضافه کنید .
  2. اگر هنوز برنامه خود را به پروژه Firebase متصل نکرده اید، این کار را از کنسول Firebase انجام دهید.
  3. احراز هویت ناشناس را فعال کنید:
    1. در کنسول Firebase ، بخش Auth را باز کنید.
    2. در صفحه Sign-in Methods ، روش ورود به سیستم ناشناس را فعال کنید.

با Firebase به صورت ناشناس احراز هویت

هنگامی که یک کاربر خارج از سیستم از یک ویژگی برنامه استفاده می‌کند که نیاز به احراز هویت با Firebase دارد، با انجام مراحل زیر به صورت ناشناس وارد کاربر شوید:

کلاس Auth دروازه همه تماس های API است.
  1. فایل‌های هدر Auth و App را اضافه کنید:
    #include "firebase/app.h"
    #include "firebase/auth.h"
    
  2. در کد اولیه خود، یک کلاس 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__)
    
  3. firebase::auth::Auth را برای firebase::App خود بدست آورید. یک نگاشت یک به یک بین App و Auth وجود دارد.
    firebase::auth::Auth* auth = firebase::auth::Auth::GetAuth(app);
    
  • Call Auth::SignInAnonymously .
    firebase::Future<firebase::auth::User*> result = auth->SignInAnonymously();
    
  • اگر برنامه شما دارای یک حلقه به‌روزرسانی است که به طور منظم اجرا می‌شود (مثلاً 30 یا 60 بار در ثانیه)، می‌توانید نتایج را یک بار در هر به‌روزرسانی با Auth::SignInAnonymouslyLastResult :
    firebase::Future<firebase::auth::User*> result =
        auth->SignInAnonymouslyLastResult();
    if (result.status() == firebase::kFutureStatusComplete) {
      if (result.error() == firebase::auth::kAuthErrorNone) {
        firebase::auth::User* user = *result.result();
        printf("Sign in succeeded for `%s`\n", user->display_name().c_str());
      } else {
        printf("Sign in failed with error '%s'\n", result.error_message());
      }
    }
    
    بررسی کنید یا اگر برنامه شما مبتنی بر رویداد است، ممکن است ترجیح دهید. برای ثبت تماس برگشتی در آینده .
  • یک حساب کاربری ناشناس را به یک حساب دائمی تبدیل کنید

    هنگامی که یک کاربر ناشناس در برنامه شما ثبت نام می کند، ممکن است بخواهید به او اجازه دهید کار خود را با حساب جدید خود ادامه دهد - برای مثال، ممکن است بخواهید مواردی را که کاربر قبل از ثبت نام به سبد خرید خود اضافه کرده است در جدید خود در دسترس قرار دهید. سبد خرید حساب برای این کار مراحل زیر را انجام دهید:

    1. هنگامی که کاربر ثبت نام کرد، جریان ورود به سیستم ارائه دهنده احراز هویت کاربر را تا فراخوانی یکی از متدهای Auth::SignInWith ، بدون احراز هویت، تکمیل کنید. به عنوان مثال، رمز Google ID کاربر، نشانه دسترسی فیس بوک یا آدرس ایمیل و رمز عبور را دریافت کنید.
    2. برای ارائه‌دهنده احراز هویت جدید، یک تأیید auth::Credential دریافت کنید:

      Google Sign-In
      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);
      
    3. auth::Credential را به متد LinkWithCredential کاربر ورود به سیستم ارسال کنید:

      // Link the new credential to the currently active user.
      firebase::auth::User* current_user = auth->current_user();
      firebase::Future<firebase::auth::User*> result =
          current_user->LinkWithCredential(credential);
      

    اگر تماس با LinkWithCredential موفقیت آمیز باشد، حساب جدید کاربر می تواند به داده های Firebase حساب ناشناس دسترسی پیدا کند.

    مراحل بعدی

    اکنون که کاربران می توانند با Firebase احراز هویت کنند، می توانید با استفاده از قوانین Firebase دسترسی آنها به داده های پایگاه داده Firebase خود را کنترل کنید.