يمكنك استخدام 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 في تسجيل الدخول إلى السحابة الإلكترونية.
الخطوات التالية
بعد أن أصبح بإمكان المستخدمين إثبات ملكية حساباتهم باستخدام Firebase، يمكنك التحكّم في إذن وصولهم إلى البيانات في قاعدة بيانات Firebase باستخدام قواعد Firebase.