يمكنك استخدام مصادقة Firebase لإنشاء حسابات مؤقتة مجهولة الهوية واستخدامها للمصادقة باستخدام Firebase. يمكن استخدام هذه الحسابات المؤقتة المخفية الهوية للسماح للمستخدمين الذين لم يشتركوا بعد في تطبيقك باستخدام البيانات المحمية بقواعد الأمان. إذا قرّر مستخدم مجهول الهوية الاشتراك في تطبيقك، يمكنك ربط بيانات اعتماد تسجيل الدخول الخاصة به بالحساب المجهول كي يتمكّن من مواصلة استخدام بياناته المحمية في الجلسات المستقبلية.
قبل البدء
-
يمكنك استخدام "مدير حزم Swift" لتثبيت اعتماديات Firebase وإدارتها.
- في Xcode، بعد فتح مشروع تطبيقك، انتقِل إلى File > Add Packages (ملف > إضافة حِزم).
- أضِف مستودع حزمة تطوير البرامج (SDK) لمنصّات Firebase Apple عندما يُطلب منك ذلك:
- اختر مكتبة مصادقة Firebase.
- أضِف العلامة
-ObjC
إلى القسم علامات الروابط الأخرى في إعدادات إصدار هدفك. - عند الانتهاء، ستبدأ خدمة Xcode تلقائيًا في حلّ المشاكل المتعلّقة بالعناصر التي تعتمد عليها وتنزيلها في الخلفية.
https://github.com/firebase/firebase-ios-sdk.git
- إذا لم تكن قد ربطت تطبيقك بمشروعك في Firebase، يمكنك إجراء ذلك من خلال وحدة تحكُّم Firebase.
- فعِّل المصادقة بدون الكشف عن هويتك:
- في وحدة تحكُّم Firebase، افتح قسم المصادقة.
- في صفحة طرق تسجيل الدخول، فعِّل طريقة تسجيل الدخول مجهول الهوية.
- اختياري: في حال ترقية مشروعك إلى مصادقة Firebase باستخدام منصّة الهوية، يمكنك تفعيل إزالة البرامج غير المرغوب فيها تلقائيًا. عند تفعيل هذا الخيار، سيتم تلقائيًا حذف الحسابات المجهولة الهوية التي مرّ عليها أكثر من 30 يومًا. في المشاريع التي تم فيها تفعيل ميزة "التنظيف التلقائي"، لن تُحتسَب المصادقة المجهولة الهوية ضمن حدود الاستخدام أو حصص الفوترة. راجِع تنظيف البيانات تلقائيًا.
المصادقة باستخدام Firebase بهوية مجهولة
عندما يستخدم مستخدم لم يسجّل الدخول ميزة تطبيق تتطلّب المصادقة باستخدام Firebase، سجِّل دخوله مع إخفاء الهوية من خلال إكمال الخطوات التالية:
- يمكنك استيراد وحدة
FirebaseCore
فيUIApplicationDelegate
، بالإضافة إلى أي وحدات Firebase أخرى يستخدمها المستخدم المفوَّض في تطبيقك. على سبيل المثال، لاستخدام Cloud Firestore والمصادقة:واجهة المستخدم
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:)
الخاصة بمفوَّض تطبيقك:واجهة المستخدم
// 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.واجهة المستخدم
@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 باستخدام النظام الأساسي للهوية، يمكنك تفعيل ميزة الإزالة التلقائية في "وحدة تحكُّم Firebase". عند تفعيل هذه الميزة، تسمح لمنصة Firebase بحذف الحسابات المجهولة الهوية التي مرّ عليها أكثر من 30 يومًا تلقائيًا. في المشاريع التي تم فيها تفعيل ميزة "التنظيف التلقائي"، لن يتم احتساب المصادقة المجهولة ضمن حدود الاستخدام أو حصص الفوترة.
- وقد يتم تلقائيًا حذف أي حسابات مجهولة المصدر تم إنشاؤها بعد تفعيل إزالة البرامج غير المرغوب فيها تلقائيًا في أي وقت بعد 30 يومًا من عملية الإنشاء.
- ستكون الحسابات الحالية المجهولة المصدر مؤهَّلة للحذف التلقائي بعد 30 يومًا من تفعيل إزالة البرامج غير المرغوب فيها تلقائيًا.
- إذا أوقفت ميزة إزالة البرامج غير المرغوب فيها، ستظل أي حسابات مجهولة الهوية ومجدولة لحذفها مُجدوَلة ليتم حذفها.
- في حال "ترقية" حساب مجهول من خلال ربطه بأي طريقة تسجيل دخول، لن يتم حذف الحساب تلقائيًا.
إذا أردت معرفة عدد المستخدمين الذين سيتأثرون بذلك قبل تفعيل هذه الميزة، وكنت قد أجريت
ترقية لمشروعك إلى مصادقة Firebase باستخدام الهوية، يمكنك الفلترة حسب
is_anon
في التسجيل في السحابة
الإلكترونية.
الخطوات اللاحقة
بعد أن تمكّن المستخدمون من المصادقة باستخدام Firebase، يمكنك الآن التحكّم في وصولهم إلى البيانات في قاعدة بيانات Firebase باستخدام قواعد Firebase.