احراز هویت با Firebase به صورت ناشناس در پلتفرم های اپل
با مجموعهها، منظم بمانید
ذخیره و طبقهبندی محتوا براساس اولویتهای شما.
میتوانید از Firebase Authentication برای ایجاد و استفاده از حسابهای ناشناس موقت برای احراز هویت با Firebase استفاده کنید. از این حسابهای ناشناس موقت میتوان استفاده کرد تا به کاربرانی که هنوز در برنامه شما ثبت نام نکردهاند اجازه دهند تا با دادههای محافظت شده توسط قوانین امنیتی کار کنند. اگر یک کاربر ناشناس تصمیم گرفت در برنامه شما ثبت نام کند، می توانید اعتبار ورود به سیستم او را به حساب ناشناس پیوند دهید تا بتواند در جلسات بعدی با داده های محافظت شده خود کار کند.
قبل از شروع
برای نصب و مدیریت وابستگی های Firebase از Swift Package Manager استفاده کنید.
در Xcode، با باز بودن پروژه برنامه، به File > Add Packages بروید.
هنگامی که از شما خواسته شد، مخزن SDK پلتفرم های Apple Firebase را اضافه کنید:
https://github.com/firebase/firebase-ios-sdk.git
کتابخانه Firebase Authentication انتخاب کنید.
پرچم -ObjC را به بخش Other Linker Flags تنظیمات ساخت هدف خود اضافه کنید.
پس از اتمام، Xcode به طور خودکار شروع به حل و دانلود وابستگی های شما در پس زمینه می کند.
اگر هنوز برنامه خود را به پروژه Firebase متصل نکرده اید، این کار را از کنسول Firebase انجام دهید.
در صفحه Sign-in Methods ، روش ورود به سیستم ناشناس را فعال کنید.
اختیاری : اگر پروژه خود را به Firebase Authentication with Identity Platform ارتقا داده اید، می توانید پاکسازی خودکار را فعال کنید. وقتی این تنظیم را فعال میکنید، حسابهای ناشناس قدیمیتر از 30 روز بهطور خودکار حذف میشوند. در پروژههایی که پاکسازی خودکار فعال است، احراز هویت ناشناس دیگر در محدودیتهای استفاده یا سهمیههای صورتحساب حساب نمیشود. به پاکسازی خودکار مراجعه کنید.
با Firebase به صورت ناشناس احراز هویت
هنگامی که یک کاربر خارج از سیستم از یک ویژگی برنامه استفاده میکند که نیاز به احراز هویت با Firebase دارد، با انجام مراحل زیر به طور ناشناس وارد کاربر شوید:
ماژول FirebaseCore را در UIApplicationDelegate خود و همچنین هر ماژول Firebase دیگری که نماینده برنامه شما استفاده میکند، وارد کنید. به عنوان مثال، برای استفاده از Cloud Firestore و Authentication :
یک نمونه اشتراکگذاری شده FirebaseApp در روش application(_:didFinishLaunchingWithOptions:) پیکربندی کنید:
SwiftUI
// Use Firebase library to configure APIsFirebaseApp.configure()
سویفت
// Use Firebase library to configure APIsFirebaseApp.configure()
هدف-C
// Use Firebase library to configure APIs[FIRAppconfigure];
اگر از SwiftUI استفاده میکنید، باید یک نماینده برنامه ایجاد کنید و آن را از طریق UIApplicationDelegateAdaptor یا NSApplicationDelegateAdaptor به ساختار App خود متصل کنید. همچنین باید swizzling نمایندگی برنامه را غیرفعال کنید. برای اطلاعات بیشتر، دستورالعمل های SwiftUI را ببینید.
SwiftUI
@mainstructYourApp:App{// register app delegate for Firebase setup@UIApplicationDelegateAdaptor(AppDelegate.self)vardelegatevarbody:someScene{WindowGroup{NavigationView{ContentView()}}}}
متد signInAnonymouslyWithCompletion: را فراخوانی کنید:
یک حساب کاربری ناشناس را به یک حساب دائمی تبدیل کنید
هنگامی که یک کاربر ناشناس در برنامه شما ثبت نام می کند، ممکن است بخواهید به او اجازه دهید کار خود را با حساب جدید خود ادامه دهد - برای مثال، ممکن است بخواهید مواردی را که کاربر قبل از ثبت نام به سبد خرید خود اضافه کرده است در سبد خرید حساب جدید خود در دسترس قرار دهید. برای این کار مراحل زیر را انجام دهید:
هنگامی که کاربر ثبت نام می کند، جریان ورود به سیستم ارائه دهنده احراز هویت کاربر را تا فراخوانی یکی از روش های FIRAuth.signInWith ، بدون احراز هویت، تکمیل کنید. به عنوان مثال، رمز Google ID کاربر، نشانه دسترسی فیس بوک، یا آدرس ایمیل و رمز عبور را دریافت کنید.
یک FIRAuthCredential برای ارائه دهنده احراز هویت جدید دریافت کنید:
اگر تماس با linkWithCredential:completion: موفقیت آمیز باشد، حساب جدید کاربر می تواند به داده های Firebase حساب ناشناس دسترسی پیدا کند.
پاکسازی خودکار
اگر پروژه خود را به Firebase Authentication with Identity Platform ارتقا داده اید، می توانید پاکسازی خودکار را در کنسول Firebase فعال کنید. وقتی این ویژگی را فعال میکنید، به Firebase اجازه میدهید تا بهطور خودکار حسابهای ناشناس قدیمیتر از 30 روز را حذف کند. در پروژههایی که پاکسازی خودکار فعال است، احراز هویت ناشناس جزو محدودیتهای استفاده یا سهمیههای صورتحساب حساب نمیشود.
هر حساب ناشناس ایجاد شده پس از فعال کردن پاکسازی خودکار ممکن است هر زمان پس از 30 روز پس از ایجاد، به طور خودکار حذف شود.
حسابهای ناشناس موجود 30 روز پس از فعال کردن پاکسازی خودکار واجد شرایط حذف خودکار خواهند بود.
اگر پاکسازی خودکار را خاموش کنید، هر حساب ناشناس برنامهریزیشده برای حذف، برنامهریزی شده برای حذف باقی میماند.
اگر یک حساب ناشناس را با پیوند دادن آن به هر روش ورود به سیستم «ارتقا» کنید، حساب به طور خودکار حذف نخواهد شد.
اکنون که کاربران می توانند با Firebase احراز هویت کنند، می توانید با استفاده از قوانین Firebase دسترسی آنها به داده های پایگاه داده Firebase خود را کنترل کنید.
تاریخ آخرین بهروزرسانی 2025-08-15 بهوقت ساعت هماهنگ جهانی.
[null,null,["تاریخ آخرین بهروزرسانی 2025-08-15 بهوقت ساعت هماهنگ جهانی."],[],[],null,["You 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 to the anonymous\naccount](/docs/auth/ios/account-linking) so that they can continue to work with their protected data in\nfuture sessions.\n\nBefore you begin\n\n1. Use Swift Package Manager to install and manage Firebase dependencies.\n\n | Visit [our installation guide](/docs/ios/installation-methods) to learn about the different ways you can add Firebase SDKs to your Apple project, including importing frameworks directly and using CocoaPods.\n 1. In Xcode, with your app project open, navigate to **File \\\u003e Add Packages**.\n 2. When prompted, add the Firebase Apple platforms SDK repository: \n\n ```text\n https://github.com/firebase/firebase-ios-sdk.git\n ```\n | **Note:** New projects should use the default (latest) SDK version, but you can choose an older version if needed.\n 3. Choose the Firebase Authentication library.\n 4. Add the `-ObjC` flag to the *Other Linker Flags* section of your target's build settings.\n 5. When finished, Xcode will automatically begin resolving and downloading your dependencies in the background.\n2. If you haven't yet connected your app to your Firebase project, do so from the [Firebase console](//console.firebase.google.com/).\n3. Enable anonymous auth:\n 1. In the [Firebase console](//console.firebase.google.com/), open the **Auth** section.\n 2. On the **Sign-in Methods** page, enable the **Anonymous** sign-in method.\n 3. **Optional** : If you've upgraded your project to [Firebase Authentication with Identity Platform](/auth#identity-platform), you can enable automatic clean-up. When you enable this setting, anonymous accounts older than 30 days will be automatically deleted. In projects with automatic clean-up enabled, anonymous authentication will no longer count toward usage limits or billing quotas. See [Automatic clean-up](#auto-cleanup).\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 completing the following steps:\n\n1. Import the `FirebaseCore` module in your `UIApplicationDelegate`, as well as any other [Firebase modules](/docs/ios/setup#available-pods) your app delegate uses. For example, to use Cloud Firestore and Authentication: \n\n SwiftUI \n\n ```swift\n import SwiftUI\n import FirebaseCore\n import FirebaseFirestore\n import FirebaseAuth\n // ...\n \n ```\n\n Swift \n\n ```swift\n import FirebaseCore\n import FirebaseFirestore\n import FirebaseAuth\n // ...\n \n ```\n\n Objective-C \n\n ```objective-c\n @import FirebaseCore;\n @import FirebaseFirestore;\n @import FirebaseAuth;\n // ...\n \n ```\n2. Configure a [`FirebaseApp`](/docs/reference/swift/firebasecore/api/reference/Classes/FirebaseApp) shared instance in your app delegate's `application(_:didFinishLaunchingWithOptions:)` method: \n\n SwiftUI \n\n ```swift\n // Use Firebase library to configure APIs\n FirebaseApp.configure()\n ```\n\n Swift \n\n ```swift\n // Use Firebase library to configure APIs\n FirebaseApp.configure()\n ```\n\n Objective-C \n\n ```objective-c\n // Use Firebase library to configure APIs\n [FIRApp configure];\n ```\n3. If you're using SwiftUI, you must create an application delegate and attach it to your `App` struct via `UIApplicationDelegateAdaptor` or `NSApplicationDelegateAdaptor`. You must also disable app delegate swizzling. For more information, see the [SwiftUI instructions](/docs/ios/learn-more#swiftui). \n\n SwiftUI \n\n ```swift\n @main\n struct YourApp: App {\n // register app delegate for Firebase setup\n @UIApplicationDelegateAdaptor(AppDelegate.self) var delegate\n\n var body: some Scene {\n WindowGroup {\n NavigationView {\n ContentView()\n }\n }\n }\n }\n \n ```\n4. Call the `signInAnonymouslyWithCompletion:` method: \n\n Swift \n\n ```swift\n Auth.auth().signInAnonymously { authResult, error in\n // ...\n }\n ```\n\n Objective-C \n\n ```objective-c\n [[FIRAuth auth] signInAnonymouslyWithCompletion:^(FIRAuthDataResult * _Nullable authResult,\n NSError * _Nullable error) {\n // ...\n }];\n ```\n5. If the `signInAnonymouslyWithCompletion:` method completes without error, you can get the anonymous user's account data from the `FIRAuthDataResult` object: \n\n Swift \n\n ```swift\n guard let user = authResult?.user else { return }\n let isAnonymous = user.isAnonymous // true\n let uid = user.uid\n ```\n\n Objective-C \n\n ```objective-c\n FIRUser *user = authResult.user;\n BOOL isAnonymous = user.anonymous; // YES\n NSString *uid = user.uid;\n ```\n\n| 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](//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 authentication provider up to, but not including, calling one of the [`FIRAuth.signInWith`](/docs/reference/ios/firebaseauth/interface_f_i_r_auth) methods. For example, get the user's Google ID token, Facebook access token, or email address and password.\n2. Get an `FIRAuthCredential` for the new authentication provider:\n\n Google Sign-In \n\n Swift \n\n ```swift\n guard\n let authentication = user?.authentication,\n let idToken = authentication.idToken\n else {\n return\n }\n\n let credential = GoogleAuthProvider.credential(withIDToken: idToken,\n accessToken: authentication.accessToken)\n ```\n\n Objective-C \n\n ```objective-c\n FIRAuthCredential *credential =\n [FIRGoogleAuthProvider credentialWithIDToken:result.user.idToken.tokenString\n accessToken:result.user.accessToken.tokenString];\n ```\n\n Facebook Login \n\n Swift \n\n ```swift\n let credential = FacebookAuthProvider\n .credential(withAccessToken: AccessToken.current!.tokenString)\n ```\n\n Objective-C \n\n ```objective-c\n FIRAuthCredential *credential = [FIRFacebookAuthProvider\n credentialWithAccessToken:[FBSDKAccessToken currentAccessToken].tokenString];\n ```\n\n Email-password sign-in \n\n Swift \n\n ```swift\n let credential = EmailAuthProvider.credential(withEmail: email, password: password)\n ```\n\n Objective-C \n\n ```objective-c\n FIRAuthCredential *credential =\n [FIREmailAuthProvider credentialWithEmail:email\n password:password];\n ```\n3. Pass the `FIRAuthCredential` object to the sign-in user's\n `linkWithCredential:completion:` method:\n\n Swift \n\n ```swift\n user.link(with: credential) { authResult, error in\n // ...\n }\n }\n ```\n\n Objective-C \n\n ```objective-c\n [[FIRAuth auth].currentUser linkWithCredential:credential\n completion:^(FIRAuthDataResult *result, NSError *_Nullable error) {\n // ...\n }];\n ```\n\nIf the call to `linkWithCredential:completion:` succeeds, the user's new account can\naccess the anonymous account's Firebase data.\n| This technique can also be used to [link any two accounts](/docs/auth/ios/account-linking).\n\nAutomatic clean-up\n\nIf you've upgraded your project to [Firebase Authentication with Identity Platform](/docs/auth#identity-platform), you can\nenable automatic clean-up in the Firebase console. When you enable this feature you allow\nFirebase to automatically delete anonymous accounts older than 30 days. In projects with automatic\nclean-up enabled, anonymous authentication will not count toward usage limits or billing quotas.\n\n- Any anonymous accounts created after enabling automatic clean-up might be automatically deleted any time after 30 days post-creation.\n- Existing anonymous accounts will be eligible for automatic deletion 30 days after enabling automatic clean-up.\n- If you turn automatic clean-up off, any anonymous accounts scheduled to be deleted will remain scheduled to be deleted.\n- If you \"upgrade\" an anonymous account by linking it to any sign-in method, the account will not get automatically deleted.\n\nIf you want to see how many users will be affected before you enable this feature, and you've\nupgraded your project to [Firebase Authentication with Identity Platform](/docs/auth#identity-platform), you can filter by\n`is_anon` in [Cloud\nLogging](https://cloud.google.com/logging/docs).\n\nNext steps\n\nNow that users can authenticate with Firebase, you can control their access to\ndata in your Firebase database using\n[Firebase rules](/docs/database/security#section-authorization)."]]