میتوانید از Firebase Authentication برای ایجاد و استفاده از حسابهای ناشناس موقت برای اصالتسنجی با Firebase استفاده کنید. از این حسابهای موقت ناشناس میتوان برای اجازه دادن به کاربرانی که هنوز در برنامه شما ثبتنام نکردهاند برای کار با دادههای محافظتشده توسط قوانین امنیتی استفاده کرد. اگر کاربر ناشناسی تصمیم بگیرد در برنامه شما ثبتنام کند، میتوانید اعتبارنامههای ورود به سیستم او را به حساب ناشناس پیوند دهید تا بتواند در جلسات آینده نیز با دادههای محافظتشدهاش کار کند.
قبل از شروع
-
از «مدیر بسته Swift» برای نصب و مدیریت وابستگیهای Firebase استفاده کنید.
- در Xcode، با باز بودن پروژه برنامه، به File > Add Packages (فایل > افزودن بستهها) پیمایش کنید.
- وقتی درخواست شد، مخزن کیت توسعه نرمافزار پلاتفرمهای Firebase Apple را اضافه کنید:
- کتابخانه Firebase Authentication را انتخاب کنید.
- پرچم
-ObjCرا به بخش پرچمهای پیونددهنده دیگر در تنظیمات ساخت هدف اضافه کنید. - پساز اتمام، Xcode بهطور خودکار شروع به حل و بارگیری وابستگیهای شما در پسزمینه میکند.
https://github.com/firebase/firebase-ios-sdk.git
- اگر هنوز برنامهتان را به پروژه Firebase متصل نکردهاید، این کار را از کنسول Firebase انجام دهید.
-
فعال کردن اصالتسنجی ناشناس:
- در کنسول Firebase، به امنیت > اصالتسنجی بروید.
- در زبانه روش ورود به سیستم، ارائهدهنده ورود به سیستم ناشناس را فعال کنید.
- اختیاری: اگر پروژهتان را به Firebase Authentication with Identity Platform ارتقا دادهاید، میتوانید پاکسازی خودکار را فعال کنید. وقتی این تنظیم را فعال میکنید، حسابهای ناشناس قدیمیتر از ۳۰ روز بهطور خودکار حذف خواهند شد. در پروژههایی که پاکسازی خودکار در آنها فعال است، اصالتسنجی ناشناس دیگر در محدودیتهای استفاده یا سهمیههای صورتحساب محاسبه نخواهد شد. پاکسازی خودکار را ببینید.
اصالتسنجی ناشناس با Firebase
وقتی کاربری که از سیستم خارج شده است از ویژگی برنامهای استفاده میکند که به اصالتسنجی با Firebase نیاز دارد، با تکمیل مراحل زیر، کاربر را بهصورت ناشناس به سیستم وارد کنید:
- واحد
FirebaseCoreرا درUIApplicationDelegateو همچنین هر واحد Firebase دیگری که نماینده برنامه شما استفاده میکند وارد کنید. برای مثال، برای استفاده از Cloud Firestore و Authentication:SwiftUI
import SwiftUI import FirebaseCore import FirebaseFirestore import FirebaseAuth // ...
Swift
import FirebaseCore import FirebaseFirestore import FirebaseAuth // ...
Objective-C
@import FirebaseCore; @import FirebaseFirestore; @import FirebaseAuth; // ...
- نمونه مشترکی را در
FirebaseAppروش نماینده برنامه خود پیکربندی کنید:application(_:didFinishLaunchingWithOptions:)SwiftUI
// Use Firebase library to configure APIs FirebaseApp.configure()
Swift
// Use Firebase library to configure APIs FirebaseApp.configure()
Objective-C
// Use Firebase library to configure APIs [FIRApp configure];
- اگر از SwiftUI استفاده میکنید، باید نماینده برنامه ایجاد کنید و آن را ازطریق
UIApplicationDelegateAdaptorیاNSApplicationDelegateAdaptorبه ساختارAppپیوست کنید. همچنین باید تغییرات در نماینده برنامه را غیرفعال کنید. برای اطلاعات بیشتر، دستورالعملهای SwiftUI را ببینید.SwiftUI
@main struct YourApp: App { // register app delegate for Firebase setup @UIApplicationDelegateAdaptor(AppDelegate.self) var delegate var body: some Scene { WindowGroup { NavigationView { ContentView() } } } }
- متد
signInAnonymouslyWithCompletion:را فراخوانی کنید:Swift
Auth.auth().signInAnonymously { authResult, error in // ... }
Objective-C
[[FIRAuth auth] signInAnonymouslyWithCompletion:^(FIRAuthDataResult * _Nullable authResult, NSError * _Nullable error) { // ... }];
- اگر روش
signInAnonymouslyWithCompletion:بدون خطا تکمیل شود، میتوانید دادههای حساب کاربر ناشناس را از شیءFIRAuthDataResultدریافت کنید:Swift
guard let user = authResult?.user else { return } let isAnonymous = user.isAnonymous // true let uid = user.uid
Objective-C
FIRUser *user = authResult.user; BOOL isAnonymous = user.anonymous; // YES NSString *uid = user.uid;
تبدیل حساب ناشناس به حساب دائمی
وقتی کاربر ناشناسی در برنامه شما ثبتنام میکند، ممکن است بخواهید به او اجازه دهید کارش را با حساب جدیدش ادامه دهد—برای مثال، ممکن است بخواهید مواردی را که کاربر قبلاز ثبتنام به سبد خریدش اضافه کرده است در سبد خرید حساب جدیدش دردسترس قرار دهید. برای انجام این کار، مراحل زیر را تکمیل کنید:
- وقتی کاربر ثبتنام میکند، جریان ورود به سیستم را برای ارائهدهنده اصالتسنجی کاربر تا قبلاز فراخوانی یکی از روشهای
FIRAuth.signInWithتکمیل کنید. برای مثال، دریافت کردن نشانه شناسایی Google کاربر، نشانه دسترسی Facebook، یا نشانی ایمیل و گذرواژه. FIRAuthCredentialرا برای ارائهدهنده اصالتسنجی جدید دریافت کنید:ورود با Google
Swift
guard let authentication = user?.authentication, let idToken = authentication.idToken else { return } let credential = GoogleAuthProvider.credential(withIDToken: idToken, accessToken: authentication.accessToken)
Objective-C
FIRAuthCredential *credential = [FIRGoogleAuthProvider credentialWithIDToken:result.user.idToken.tokenString accessToken:result.user.accessToken.tokenString];
ورود به سیستم فیسبوک
Swift
let credential = FacebookAuthProvider .credential(withAccessToken: AccessToken.current!.tokenString)
Objective-C
FIRAuthCredential *credential = [FIRFacebookAuthProvider credentialWithAccessToken:[FBSDKAccessToken currentAccessToken].tokenString];
ورود به سیستم با ایمیل و گذرواژه
Swift
let credential = EmailAuthProvider.credential(withEmail: email, password: password)
Objective-C
FIRAuthCredential *credential = [FIREmailAuthProvider credentialWithEmail:email password:password];
شیء
FIRAuthCredentialرا به روشlinkWithCredential:completion:کاربر واردشده منتقل کنید:Swift
user.link(with: credential) { authResult, error in // ... } }
Objective-C
[[FIRAuth auth].currentUser linkWithCredential:credential completion:^(FIRAuthDataResult *result, NSError *_Nullable error) { // ... }];
اگر فراخوانی linkWithCredential:completion: موفقیتآمیز باشد، حساب جدید کاربر میتواند به دادههای Firebase حساب ناشناس دسترسی پیدا کند.
پاکسازی خودکار
اگر پروژهتان را به Firebase Authentication with Identity Platform ارتقا دادهاید، میتوانید پاکسازی خودکار را در کنسول Firebase فعال کنید. وقتی این ویژگی را فعال میکنید، به Firebase اجازه میدهید حسابهای ناشناس قدیمیتر از ۳۰ روز را بهطور خودکار حذف کند. در پروژههایی که پاکسازی خودکار در آنها فعال است، اصالتسنجی ناشناس در محدودیتهای استفاده یا سهمیههای صورتحساب محاسبه نمیشود.
- هر حساب ناشناسی که پساز فعال کردن پاکسازی خودکار ایجاد شود ممکن است در هر زمانی پساز ۳۰ روز از ایجاد بهطور خودکار حذف شود.
- حسابهای ناشناس موجود ۳۰ روز پساز فعال کردن پاکسازی خودکار واجدشرایط حذف خودکار خواهند بود.
- اگر پاکسازی خودکار را خاموش کنید، هر حساب ناشناسی که برای حذف شدن زمانبندی شده باشد همچنان برای حذف شدن زمانبندی خواهد ماند.
- اگر حساب ناشناسی را با پیوند دادن آن به هر روش ورود به سیستم «ارتقا دهید»، حساب بهطور خودکار حذف نخواهد شد.
اگر میخواهید قبلاز فعال کردن این ویژگی ببینید چند کاربر تحت تأثیر قرار میگیرند و پروژه خود را به Firebase Authentication with Identity Platform ارتقا دادهاید، میتوانید در is_anon در گزارش
وقایع ابری براساس آن فیلتر کنید.
مراحل بعدی
اکنون که کاربران میتوانند با Firebase احراز هویت کنند، میتوانید دسترسی آنها به دادهها در پایگاه داده Firebase خود را بااستفاده از قوانین Firebase کنترل کنید.