المصادقة باستخدام Firebase بهوية مخفية

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

قبل البدء

  1. يُرجى اتّباع الخطوات الواردة في دليل البدء، إذا لم يسبق لك فعل ذلك.

  2. تفعيل تسجيل الدخول مع إخفاء الهوية:

    • في قسم المصادقة ضمن "وحدة تحكُّم Firebase"، افتح طريقة تسجيل الدخول .
    • من صفحة طريقة تسجيل الدخول، فعِّل ميزة تسجيل الدخول مع إخفاء الهوية. وانقر على حفظ.

المصادقة باستخدام Firebase بهوية مجهولة

عندما يستخدم مستخدم لم يسجّل الدخول ميزة تطبيق تتطلب المصادقة مع Firebase، سجّل الدخول إلى المستخدم بدون الكشف عن هويتك من خلال الاتصال بـ signInAnonymously():

try {
  final userCredential =
      await FirebaseAuth.instance.signInAnonymously();
  print("Signed in with temporary account.");
} on FirebaseAuthException catch (e) {
  switch (e.code) {
    case "operation-not-allowed":
      print("Anonymous auth hasn't been enabled for this project.");
      break;
    default:
      print("Unknown error.");
  }
}

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

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

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

  2. احصل على عنصر Credential لموفِّر المصادقة الجديد:

    // Google Sign-in
    final credential = GoogleAuthProvider.credential(idToken: idToken);
    
    // Email and password sign-in
    final credential =
        EmailAuthProvider.credential(email: emailAddress, password: password);
    
    // Etc.
    
  3. تمرير كائن Credential إلى linkWithCredential() الخاص بالمستخدم الذي سجّل الدخول :

    try {
      final userCredential = await FirebaseAuth.instance.currentUser
          ?.linkWithCredential(credential);
    } on FirebaseAuthException catch (e) {
      switch (e.code) {
        case "provider-already-linked":
          print("The provider has already been linked to the user.");
          break;
        case "invalid-credential":
          print("The provider's credential is not valid.");
          break;
        case "credential-already-in-use":
          print("The account corresponding to the credential already exists, "
              "or is already linked to a Firebase User.");
          break;
        // See the API reference for the full list of error codes.
        default:
          print("Unknown error.");
      }
      ```
    

إذا نجح الاتصال إلى linkWithCredential()، يمكن إنشاء حساب المستخدم الجديد الوصول إلى بيانات Firebase للحساب المجهول.

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

بعد أن ينشئ المستخدم حسابًا جديدًا، يتم تخزين هذا الحساب كجزء من حسابك ويمكن استخدامه لتحديد هوية مستخدم على مستوى كل تطبيق في المشروع، بغض النظر عن طريقة تسجيل الدخول التي استخدمها المستخدم.

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

في "قاعدة بيانات Firebase في الوقت الفعلي" و"قواعد أمان Cloud Storage"، يمكنك الحصول على رقم تعريف المستخدِم الفريد الخاص بالمستخدم الذي سجّل الدخول من المتغيّر auth واستخدامه من أجل للتحكم في البيانات التي يمكن للمستخدم الوصول إليها.

يمكنك السماح للمستخدمين بتسجيل الدخول إلى تطبيقك باستخدام طرق مصادقة متعددة. موفِّري خدمة المصادقة من خلال ربط بيانات اعتماد موفِّر المصادقة) حساب مستخدم حالي.

لتسجيل خروج مستخدم، يُرجى الاتصال بالرقم signOut():

await FirebaseAuth.instance.signOut();