يمكنك استخدام Firebase Authentication لإنشاء حسابات مؤقتة غير معروفة والتحقّق من الهوية باستخدام Firebase. يمكن استخدام هذه الحسابات المؤقتة غير المحددة الهوية للسماح للمستخدمين الذين لم يشتركوا بعد في تطبيقك بالعمل مع البيانات المحمية بقواعد الأمان. إذا قرر مستخدم مجهول الهوية الاشتراك في تطبيقك، يمكنك ربط بيانات اعتماد تسجيل الدخول الخاصة به بالحساب مجهول الهوية حتى يتمكّن من مواصلة العمل باستخدام بياناته المحمية في جلسات المستقبل.
قبل البدء
-
استخدِم Swift Package Manager لتثبيت تبعيات Firebase وإدارتها.
- في Xcode، مع فتح مشروع تطبيقك، انتقِل إلى ملف > إضافة حِزم.
- أضِف مستودع حزمة تطوير البرامج (SDK) لمنصّات Apple من Firebase عندما يُطلب منك ذلك:
- اختَر مكتبة Firebase Authentication.
- أضِف العلامة
-ObjC
إلى قسم رموز ربط أخرى في إعدادات الإنشاء الخاصة بالهدف. - عند الانتهاء، سيبدأ Xcode تلقائيًا في حلّ ملفاتك المضمّنة وتنزيلها في الخلفية.
https://github.com/firebase/firebase-ios-sdk.git
- إذا لم يسبق لك ربط تطبيقك بمشروعك على Firebase، يمكنك إجراء ذلك من وحدة تحكّم Firebase.
- تفعيل المصادقة المجهولة:
- في وحدة تحكّم Firebase، افتح قسم Auth.
- في صفحة طُرق تسجيل الدخول، فعِّل طريقة تسجيل الدخول غير المحدَّد الهوية.
- اختياري: إذا كنت قد أجريت ترقية لمشروعك إلى Firebase Authentication with Identity Platform، يمكنك تفعيل ميزة "التنظيف التلقائي". عند تفعيل هذا الإعداد، سيتم تلقائيًا حذف الحسابات المجهولة التي مرّ عليها أكثر من 30 يومًا. في المشاريع التي تم تفعيل ميزة "التنظيف التلقائي" فيها، لن يتم احتساب مصادقة الهوية المجهولة ضمن حدود الاستخدام أو حصص الفوترة. اطّلِع على التنظيف التلقائي.
المصادقة مع Firebase بشكل مجهول
عندما يستخدم مستخدم مسجَّل الخروج ميزة في التطبيق تتطلّب المصادقة باستخدام Firebase، سجِّل دخول المستخدم بشكل مجهول من خلال إكمال الخطوات التالية:
- استورِد وحدة
FirebaseCore
فيUIApplicationDelegate
، بالإضافة إلى أي وحدات Firebase أخرى يستخدمها مفوّض تطبيقك. على سبيل المثال، لاستخدام Cloud Firestore وAuthentication:import SwiftUI import FirebaseCore import FirebaseFirestore import FirebaseAuth // ...
import FirebaseCore import FirebaseFirestore import FirebaseAuth // ...
@import FirebaseCore; @import FirebaseFirestore; @import FirebaseAuth; // ...
- يمكنك ضبط مثيل مشترَك لملف
FirebaseApp
في طريقةapplication(_:didFinishLaunchingWithOptions:)
لمفوّض التطبيق باتّباع الخطوات التالية:// Use Firebase library to configure APIs FirebaseApp.configure()
// Use Firebase library to configure APIs FirebaseApp.configure()
// 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:
:Auth.auth().signInAnonymously { authResult, error in // ... }
[[FIRAuth auth] signInAnonymouslyWithCompletion:^(FIRAuthDataResult * _Nullable authResult, NSError * _Nullable error) { // ... }];
- إذا اكتملت طريقة
signInAnonymouslyWithCompletion:
بدون خطأ، يمكنك الحصول على بيانات حساب المستخدم المجهول من عنصرFIRAuthDataResult
:guard let user = authResult?.user else { return } let isAnonymous = user.isAnonymous // true let uid = user.uid
FIRUser *user = authResult.user; BOOL isAnonymous = user.anonymous; // YES NSString *uid = user.uid;
تحويل حساب مجهول إلى حساب دائم
عندما يشترك مستخدم مجهول الهوية في تطبيقك، قد تريد السماح له باستمرار عمله باستخدام حسابه الجديد. على سبيل المثال، يمكنك إتاحة السلع التي أضافها المستخدم إلى سلة التسوّق قبل الاشتراك في سلة التسوّق الخاصة بحسابه الجديد. لإجراء ذلك، يُرجى إكمال الخطوات التالية:
- عندما يشترك المستخدم، أكمِل عملية تسجيل الدخول لمقدّم
المصادقة للمستخدم إلى أن تصل إلى استدعاء إحدى methods
FIRAuth.signInWith
، ولكن بدون تضمين ذلك. على سبيل المثال، يمكنك الحصول على رمز تعريف المستخدم على Google، رمز الوصول إلى Facebook، أو عنوان البريد الإلكتروني وكلمة المرور. الحصول على
FIRAuthCredential
لموفِّر المصادقة الجديد:تسجيل الدخول بحساب Google
guard let authentication = user?.authentication, let idToken = authentication.idToken else { return } let credential = GoogleAuthProvider.credential(withIDToken: idToken, accessToken: authentication.accessToken)
FIRAuthCredential *credential = [FIRGoogleAuthProvider credentialWithIDToken:result.user.idToken.tokenString accessToken:result.user.accessToken.tokenString];
تسجيل الدخول باستخدام حساب Facebook
let credential = FacebookAuthProvider .credential(withAccessToken: AccessToken.current!.tokenString)
FIRAuthCredential *credential = [FIRFacebookAuthProvider credentialWithAccessToken:[FBSDKAccessToken currentAccessToken].tokenString];
تسجيل الدخول باستخدام عنوان البريد الإلكتروني وكلمة المرور
let credential = EmailAuthProvider.credential(withEmail: email, password: password)
FIRAuthCredential *credential = [FIREmailAuthProvider credentialWithEmail:email password:password];
نقْل عنصر
FIRAuthCredential
إلىlinkWithCredential:completion:
مستخدم تسجيل الدخول:user.link(with: credential) { authResult, error in // ... } }
[[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.