يمكنك استخدام Firebase Authentication لإنشاء حسابات مجهولة الهوية مؤقتة واستخدامها للمصادقة مع Firebase. يمكن استخدام هذه الحسابات المؤقتة المجهولة الهوية للسماح للمستخدمين الذين لم يشتركوا بعد في تطبيقك بالعمل مع البيانات المحمية بموجب قواعد الأمان. إذا قرر مستخدم مجهول الهوية الاشتراك في تطبيقك، يمكنك ربط بيانات اعتماد تسجيل الدخول الخاصة به بالحساب المجهول الهوية ليتمكّن من مواصلة العمل باستخدام بياناته المحمية في الجلسات المستقبلية.
قبل البدء
-
استخدِم Swift Package Manager لتثبيت تبعيات Firebase وإدارتها.
- في Xcode، افتح مشروع تطبيقك، ثم انتقِل إلى ملف > إضافة حِزم (File > Add Packages).
- عندما يُطلب منك ذلك، أضِف مستودع حزمة تطوير البرامج (SDK) لمنصات Apple في Firebase:
- اختَر مكتبة "Firebase Authentication".
- أضِف العلامة
-ObjCإلى قسم علامات الربط الأخرى (Other Linker Flags) في إعدادات إنشاء الهدف. - بعد الانتهاء، سيبدأ Xcode تلقائيًا في حلّ التبعيات وتنزيلها في الخلفية.
https://github.com/firebase/firebase-ios-sdk.git
- إذا لم يسبق لك ربط تطبيقك بمشروع Firebase، يمكنك إجراء ذلك من خلال وحدة تحكّم Firebase.
-
تفعيل المصادقة المجهولة:
- في وحدة تحكّم Firebase، انتقِل إلى الأمان > المصادقة.
- في علامة التبويب طريقة تسجيل الدخول، فعِّل موفِّر تسجيل الدخول المجهول.
- اختياري: إذا كنت قد رقّيت مشروعك إلى Firebase Authentication with Identity Platform، يمكنك تفعيل عملية التنظيف التلقائي. عند تفعيل هذا الإعداد، سيتم تلقائيًا حذف الحسابات المجهولة الهوية التي مرّ على إنشائها أكثر من 30 يومًا. في المشاريع التي تم فيها تفعيل ميزة التنظيف التلقائي، لن يتم احتساب المصادقة المجهولة الهوية ضمن حدود الاستخدام أو حصص الفوترة. يُرجى الاطّلاع على عملية التنظيف التلقائي.
المصادقة باستخدام 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، عليك إنشاء مفوَّض تطبيق وإرفاقه
ببنية
Appمن خلالUIApplicationDelegateAdaptorأوNSApplicationDelegateAdaptor. يجب أيضًا إيقاف ميزة "تبديل مفوّض التطبيق". لمزيد من المعلومات، يمكنك الاطّلاع على تعليمات 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];
تسجيل الدخول عبر Facebook
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 بحذف الحسابات المجهولة الهوية التي مرّ عليها أكثر من 30 يومًا تلقائيًا. في المشاريع التي تم تفعيل ميزة التنظيف التلقائي فيها، لن يتم احتساب المصادقة المجهولة ضمن حدود الاستخدام أو حصص الفوترة.
- أي حسابات مجهولة الهوية يتم إنشاؤها بعد تفعيل ميزة التنظيف التلقائي قد يتم حذفها تلقائيًا في أي وقت بعد مرور 30 يومًا على إنشائها.
- ستكون الحسابات المجهولة الحالية مؤهَّلة للحذف التلقائي بعد 30 يومًا من تفعيل ميزة "التنظيف التلقائي".
- في حال إيقاف ميزة "التنظيف التلقائي"، سيظلّ أي حساب مجهول الهوية مجدوَل للحذف مجدوَلاً للحذف.
- إذا "رقّيت" حسابًا مجهول الهوية من خلال ربطه بأي طريقة لتسجيل الدخول، لن يتم حذف الحساب تلقائيًا.
إذا أردت معرفة عدد المستخدمين الذين سيتأثرون قبل تفعيل هذه الميزة، وكنت قد
رقّيت مشروعك إلى Firebase Authentication with Identity Platform، يمكنك الفلترة حسب
is_anon في Cloud
Logging.
الخطوات التالية
بعد أن أصبح بإمكان المستخدمين المصادقة باستخدام Firebase، يمكنك التحكّم في وصولهم إلى البيانات في قاعدة بيانات Firebase باستخدام قواعد Firebase.