Join us in person and online for Firebase Summit on October 18, 2022. Learn how Firebase can help you accelerate app development, release your app with confidence, and scale with ease. Register now

المصادقة باستخدام Firebase بشكل مجهول على أنظمة تشغيل Apple

تنظيم صفحاتك في مجموعات يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.

يمكنك استخدام مصادقة Firebase لإنشاء واستخدام حسابات مؤقتة مجهولة المصدر للمصادقة مع Firebase. يمكن استخدام هذه الحسابات المجهولة المؤقتة للسماح للمستخدمين الذين لم يسجلوا بعد في تطبيقك بالعمل مع البيانات المحمية بقواعد الأمان. إذا قرر مستخدم مجهول التسجيل في تطبيقك ، فيمكنك ربط بيانات اعتماد تسجيل الدخول الخاصة به بالحساب المجهول حتى يتمكنوا من الاستمرار في العمل ببياناتهم المحمية في الجلسات المستقبلية.

قبل ان تبدأ

استخدم Swift Package Manager لتثبيت وإدارة تبعيات Firebase.

  1. في Xcode ، مع فتح مشروع التطبيق الخاص بك ، انتقل إلى ملف> إضافة حزم .
  2. عند المطالبة ، أضف مستودع SDK لأنظمة Apple الأساسية لـ Firebase:
  3.   https://github.com/firebase/firebase-ios-sdk
  4. اختر مكتبة مصادقة Firebase.
  5. عند الانتهاء ، سيبدأ Xcode تلقائيًا في حل وتنزيل التبعيات الخاصة بك في الخلفية.

بعد ذلك ، قم بتنفيذ بعض خطوات التكوين:

  1. إذا لم تكن قد ربطت تطبيقك بمشروع Firebase حتى الآن ، فافعل ذلك من وحدة تحكم Firebase .
  2. تمكين المصادقة المجهولة:
    1. في وحدة تحكم Firebase ، افتح قسم المصادقة .
    2. في صفحة أساليب تسجيل الدخول ، قم بتمكين طريقة تسجيل الدخول المجهول .
    3. اختياري : قم بتمكين التنظيف التلقائي. عند تمكين هذا الإعداد ، سيتم تلقائيًا حذف الحسابات المجهولة التي مضى عليها أكثر من 30 يومًا. في المشاريع التي تم تمكين التنظيف التلقائي لها ، لن يتم احتساب المصادقة المجهولة بعد الآن ضمن حدود الاستخدام أو حصص الفواتير. انظر التنظيف التلقائي .

مصادقة مع Firebase بشكل مجهول

عندما يستخدم مستخدم سجّل الخروج ميزة تطبيق تتطلب مصادقة مع Firebase ، سجّل دخول المستخدم كمجهول من خلال إكمال الخطوات التالية:

  1. قم باستيراد وحدة FirebaseCore في مندوب UIApplicationDelegate ، بالإضافة إلى أي وحدات Firebase أخرى يستخدمها مفوض التطبيق. على سبيل المثال ، لاستخدام Cloud Firestore والمصادقة:

    سويفت

    import FirebaseCore
    import FirebaseFirestore
    import FirebaseAuth
    // ...
          

    ج موضوعية

    @import FirebaseCore;
    @import FirebaseFirestore;
    @import FirebaseAuth;
    // ...
          
  2. قم بتهيئة مثيل FirebaseApp المشترك ، عادةً في مُهيئ App أو تطبيق مفوض application(_:didFinishLaunchingWithOptions:) :

    سويفت

    // Use Firebase library to configure APIs
    FirebaseApp.configure()

    ج موضوعية

    // Use Firebase library to configure APIs
    [FIRApp configure];
  3. استدعاء signInAnonymouslyWithCompletion: الطريقة:

    سويفت

    Auth.auth().signInAnonymously { authResult, error in
      // ...
    }
    

    ج موضوعية

    [[FIRAuth auth] signInAnonymouslyWithCompletion:^(FIRAuthDataResult * _Nullable authResult,
                                                      NSError * _Nullable error) {
       // ...
     }];
    
  4. إذا اكتملت طريقة 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;
    

تحويل حساب مجهول إلى حساب دائم

عندما يقوم مستخدم مجهول بالتسجيل في التطبيق الخاص بك ، فقد ترغب في السماح لهم بمواصلة عملهم باستخدام حسابهم الجديد - على سبيل المثال ، قد ترغب في جعل العناصر التي أضافها المستخدم إلى عربة التسوق الخاصة بهم قبل تسجيلهم متوفرة في حسابهم الجديد. عربة تسوق الحساب. للقيام بذلك ، أكمل الخطوات التالية:

  1. عندما يقوم المستخدم بالتسجيل ، أكمل تدفق تسجيل الدخول لموفر مصادقة المستخدم حتى ، ولكن لا يشمل ، استدعاء إحدى طرق FIRAuth.signInWith . على سبيل المثال ، احصل على رمز معرف Google الخاص بالمستخدم أو رمز الوصول إلى Facebook أو عنوان البريد الإلكتروني وكلمة المرور.
  2. احصل على FIRAuthCredential لموفر المصادقة الجديد:

    جوجل تسجيل الدخول
    سويفت
    guard
      let authentication = user?.authentication,
      let idToken = authentication.idToken
    else {
      return
    }
    
    let credential = GoogleAuthProvider.credential(withIDToken: idToken,
                                                   accessToken: authentication.accessToken)
    
    ج موضوعية
    GIDAuthentication *authentication = user.authentication;
    FIRAuthCredential *credential =
    [FIRGoogleAuthProvider credentialWithIDToken:authentication.idToken
                                     accessToken:authentication.accessToken];
    
    تسجيل الدخول الى الفيسبوك
    سويفت
    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];
    
  3. قم بتمرير كائن 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 ، سيتم تلقائيًا حذف الحسابات المجهولة التي مضى عليها أكثر من 30 يومًا. يؤدي تمكين هذا الإعداد إلى منع ملء قاعدة بيانات المستخدم بالحسابات غير المستخدمة. في المشاريع التي تم تمكين التنظيف التلقائي لها ، لن يتم احتساب المصادقة المجهولة ضمن حدود الاستخدام أو حصص الفواتير.

  • سيتم حذف أي حسابات مجهولة المصدر تم إنشاؤها بعد تمكين التنظيف التلقائي بعد 30 يومًا من الإنشاء.
  • سيتم حذف الحسابات المجهولة التي تم إنشاؤها قبل تمكين التنظيف التلقائي بعد حوالي 30 يومًا من تمكين التنظيف التلقائي.
  • إذا قمت بإيقاف تشغيل التنظيف التلقائي ، فستظل أي حسابات مجهولة تمت جدولتها للحذف مجدولة للحذف.
  • إذا قمت "بترقية" حساب مجهول عن طريق ربطه بأي طريقة تسجيل دخول ، فلن يتم حذف الحساب تلقائيًا.

إذا كنت تريد معرفة عدد المستخدمين الذين سيتأثرون قبل تمكين هذه الميزة ، وقمت بترقية مشروعك إلى Firebase Authentication مع Identity Platform ، فيمكنك التصفية حسب is_anon في Cloud Logging .

الخطوات التالية

الآن بعد أن أصبح بإمكان المستخدمين المصادقة باستخدام Firebase ، يمكنك التحكم في وصولهم إلى البيانات في قاعدة بيانات Firebase باستخدام قواعد Firebase .