تنظيم صفحاتك في مجموعات
يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.
يمكنك استخدام مصادقة Firebase لإنشاء حسابات مؤقتة مجهولة الهوية واستخدامها
للمصادقة باستخدام Firebase. يمكن استخدام هذه الحسابات المجهولة مؤقتًا
السماح للمستخدمين الذين لم يشتركوا في تطبيقك بعد باستخدام البيانات المحمية
وفقًا لقواعد الأمان إذا قرر مستخدم مجهول الهوية الاشتراك في تطبيقك، يمكنك:
ربط بيانات اعتماد تسجيل الدخول بالحساب المجهول حتى
لمواصلة العمل باستخدام بياناتهم المحمية في الجلسات المستقبلية.
قبل البدء
يُرجى اتّباع الخطوات الواردة في دليل البدء، إذا لم يسبق لك فعل ذلك.
من صفحة طريقة تسجيل الدخول، فعِّل ميزة تسجيل الدخول مع إخفاء الهوية.
وانقر على حفظ.
المصادقة باستخدام Firebase بهوية مجهولة
عندما يستخدم مستخدم لم يسجّل الدخول ميزة تطبيق تتطلب المصادقة مع
Firebase، سجّل الدخول إلى المستخدم بدون الكشف عن هويتك من خلال الاتصال بـ signInAnonymously():
try{finaluserCredential=awaitFirebaseAuth.instance.signInAnonymously();print("Signed in with temporary account.");}onFirebaseAuthExceptioncatch(e){switch(e.code){case"operation-not-allowed":print("Anonymous auth hasn't been enabled for this project.");break;default:print("Unknown error.");}}
تحويل حساب مجهول إلى حساب دائم
عند اشتراك مستخدم مجهول في تطبيقك، قد تحتاج إلى السماح له
مواصلة عملهم باستخدام حساباتهم الجديدة - على سبيل المثال، قد ترغب في
عرض السلع التي أضافها المستخدم إلى سلّة التسوّق قبل الاشتراك
متاحة في سلة التسوق الخاصة بالحساب الجديد. لإجراء ذلك، أكمل ما يلي
الخطوات:
عندما يشترك المستخدم، أكمِل إجراءات تسجيل الدخول إلى حساب المستخدم
بمزود مصادقة يصل إلى، ولكن لا يشمل، الاتصال بأحد
signInWith- طرق. على سبيل المثال، احصل على الرمز المميز لمعرّف Google للمستخدم،
رمز الدخول إلى Facebook، أو عنوان البريد الإلكتروني وكلمة المرور.
احصل على عنصر Credential لموفِّر المصادقة الجديد:
// Google Sign-infinalcredential=GoogleAuthProvider.credential(idToken:idToken);// Email and password sign-infinalcredential=EmailAuthProvider.credential(email:emailAddress,password:password);// Etc.
تمرير الكائن Credential إلى linkWithCredential() الخاص بالمستخدم الذي سجّل الدخول
:
try{finaluserCredential=awaitFirebaseAuth.instance.currentUser?.linkWithCredential(credential);}onFirebaseAuthExceptioncatch(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():
تاريخ التعديل الأخير: 2025-07-25 (حسب التوقيت العالمي المتفَّق عليه)
[null,null,["تاريخ التعديل الأخير: 2025-07-25 (حسب التوقيت العالمي المتفَّق عليه)"],[],[],null,["\u003cbr /\u003e\n\nYou can use Firebase Authentication to create and use temporary anonymous accounts\nto authenticate with Firebase. These temporary anonymous accounts can be used to\nallow users who haven't yet signed up to your app to work with data protected\nby security rules. If an anonymous user decides to sign up to your app, you can\n[link their sign-in credentials](/docs/auth/flutter/account-linking) to the anonymous account so\nthat they can continue to work with their protected data in future sessions.\n\nBefore you begin\n\n1. If you haven't already, follow the steps in the [Get started](/docs/auth/flutter/start) guide.\n\n2. Enable Anonymous sign-in:\n\n - In the Firebase console's **Authentication** section, open the [Sign in method](https://console.firebase.google.com/project/_/authentication/providers) page.\n - From the **Sign in method** page, enable the **Anonymous sign-in** method and click **Save**.\n\nAuthenticate with Firebase anonymously\n\nWhen a signed-out user uses an app feature that requires authentication with\nFirebase, sign in the user anonymously by calling `signInAnonymously()`: \n\n try {\n final userCredential =\n await FirebaseAuth.instance.signInAnonymously();\n print(\"Signed in with temporary account.\");\n } on FirebaseAuthException catch (e) {\n switch (e.code) {\n case \"operation-not-allowed\":\n print(\"Anonymous auth hasn't been enabled for this project.\");\n break;\n default:\n print(\"Unknown error.\");\n }\n }\n\n| **Note:** To protect your project from abuse, Firebase limits the number of new email/password and anonymous sign-ups that your application can have from the same IP address in a short period of time. You can request and schedule temporary changes to this quota from the [Firebase console](https://console.firebase.google.com/project/_/authentication/providers).\n\nConvert an anonymous account to a permanent account\n\nWhen an anonymous user signs up to your app, you might want to allow them to\ncontinue their work with their new account---for example, you might want to\nmake the items the user added to their shopping cart before they signed up\navailable in their new account's shopping cart. To do so, complete the following\nsteps:\n\n1. When the user signs up, complete the sign-in flow for the user's\n authentication provider up to, but not including, calling one of the\n `signInWith`- methods. For example, get the user's Google ID token,\n Facebook access token, or email address and password.\n\n2. Get a `Credential` object for the new authentication provider:\n\n // Google Sign-in\n final credential = GoogleAuthProvider.credential(idToken: idToken);\n\n // Email and password sign-in\n final credential =\n EmailAuthProvider.credential(email: emailAddress, password: password);\n\n // Etc.\n\n3. Pass the `Credential` object to the sign-in user's `linkWithCredential()`\n method:\n\n try {\n final userCredential = await FirebaseAuth.instance.currentUser\n ?.linkWithCredential(credential);\n } on FirebaseAuthException catch (e) {\n switch (e.code) {\n case \"provider-already-linked\":\n print(\"The provider has already been linked to the user.\");\n break;\n case \"invalid-credential\":\n print(\"The provider's credential is not valid.\");\n break;\n case \"credential-already-in-use\":\n print(\"The account corresponding to the credential already exists, \"\n \"or is already linked to a Firebase User.\");\n break;\n // See the API reference for the full list of error codes.\n default:\n print(\"Unknown error.\");\n }\n ```\n\nIf the call to `linkWithCredential()` succeeds, the user's new account can\naccess the anonymous account's Firebase data.\n| **Note:** This technique can also be used to [link any two accounts](/docs/auth/flutter/account-linking).\n\nNext steps\n\nAfter a user creates a new account, this account is stored as part of your\nFirebase project, and can be used to identify a user across every app in your\nproject, regardless of what sign-in method the user used.\n\nIn your apps, you can get the user's basic profile information from the\n`User` object. See [Manage Users](/docs/auth/flutter/manage-users).\n\nIn your Firebase Realtime Database and Cloud Storage Security Rules, you can\nget the signed-in user's unique user ID from the `auth` variable, and use it to\ncontrol what data a user can access.\n\nYou can allow users to sign in to your app using multiple authentication\nproviders by [linking auth provider credentials](/docs/auth/flutter/account-linking)) to an\nexisting user account.\n\nTo sign out a user, call `signOut()`: \n\n await FirebaseAuth.instance.signOut();"]]