첫 번째 단계는 사용자가 이메일 주소나 전화번호를 제공할 수 있는 로그인 환경을 구현하는 것입니다.
사용 중인 인증 시스템은 사용자와 연결된 이메일 주소 또는 전화번호를 제공해야 합니다. 다음 단계에서는 Firebase Authentication를 사용하여 로그인 정보를 안전하게 수집하는 프로세스를 간략히 설명합니다. 하지만 사용자 이메일 또는 전화번호를 수집하는 인증 시스템이 이미 있는 경우 이 단계를 건너뛰고 2단계: Google 애널리틱스 통합으로 진행할 수 있습니다.
이 튜토리얼의 기본 요건이 충족되었는지 확인
iOS 12 이상에서 실행할 수 있는 자체 앱
Google 애널리틱스 및 Google Ads에 연결된 Firebase 앱으로 등록된 앱
선호 IDE
인증 시스템 설정
Firebase Authentication 로그인 방법 사용
Firebase Authentication을 사용하면 사용자가 이메일 주소, 전화번호, 비밀번호 로그인, 제휴 ID 공급업체 (예: Google, Facebook, 트위터)를 비롯한 1개 이상의 로그인 방법을 사용하여 앱에 로그인할 수 있습니다.
Firebase Authentication 시작하기를 검토하세요.
Firebase Authentication를 맞춤 인증 시스템과 통합
또는 사용자가 정상적으로 로그인할 때 커스텀 서명 토큰을 발행하도록 인증 서버를 수정하여 Firebase Authentication를 커스텀 인증 시스템과 통합할 수 있습니다. 앱에서 이 토큰을 받아 Firebase 인증에 사용합니다. 맞춤 인증 시스템 시작하기를 검토하세요.
인증된 사용자의 이메일 주소 또는 전화번호 가져오기
Firebase Authentication로 인증 시스템을 설정한 후에는 현재 로그인한 사용자를 가져올 수 있습니다.
현재 사용자를 가져올 때 권장하는 방법은 다음과 같이 Auth 객체에 리스너를 설정하는 것입니다.
Swift
handle=Auth.auth().addStateDidChangeListener{auth,userin// Get the user's email addressletemail=user.email// or get their phone numberletphoneNumber=user.phoneNumber// ...}
Objective-C
self.handle=[[FIRAuthauth]addAuthStateDidChangeListener:^(FIRAuth*_Nonnullauth,FIRUser*_Nullableuser){// Get the user's email addressNSString*email=user.email;// or get their phone numberNSString*phoneNumber=user.phoneNumber;// ...}];
Unity
Firebase.Auth.FirebaseAuthauth;Firebase.Auth.FirebaseUseruser;// Handle initialization of the necessary firebase modules:voidInitializeFirebase(){auth=Firebase.Auth.FirebaseAuth.DefaultInstance;auth.StateChanged+=AuthStateChanged;AuthStateChanged(this,null);}// Track state changes of the auth object.voidAuthStateChanged(objectsender,System.EventArgseventArgs){if(auth.CurrentUser!=user){boolsignedIn=user!=auth.CurrentUser&&auth.CurrentUser!=null;user=auth.CurrentUser;if(signedIn){// Get the user's email addressstringemail=user.Email;// or get their phone numberstringphoneNumber=user.PhoneNumber;// ...}}}// Handle removing subscription and reference to the Auth instance.// Automatically called by a Monobehaviour after Destroy is called on it.voidOnDestroy(){auth.StateChanged-=AuthStateChanged;auth=null;}
[[["이해하기 쉬움","easyToUnderstand","thumb-up"],["문제가 해결됨","solvedMyProblem","thumb-up"],["기타","otherUp","thumb-up"]],[["필요한 정보가 없음","missingTheInformationINeed","thumb-down"],["너무 복잡함/단계 수가 너무 많음","tooComplicatedTooManySteps","thumb-down"],["오래됨","outOfDate","thumb-down"],["번역 문제","translationIssue","thumb-down"],["샘플/코드 문제","samplesCodeIssue","thumb-down"],["기타","otherDown","thumb-down"]],["최종 업데이트: 2025-09-06(UTC)"],[],[],null,["Step 1: Implement a sign-in experience\n\n\u003cbr /\u003e\n\n|----------------------------------------------------------------------------------------------------------------------------------|\n| Introduction: [Measure iOS Ads conversions](/docs/tutorials/ads-ios-on-device-measurement/index-first-party) |\n| **Step 1: Implement a sign-in experience** \u003cbr /\u003e |\n| Step 2: [Integrate Google Analytics](/docs/tutorials/ads-ios-on-device-measurement/step-2) |\n| Step 3: [Initiate on-device conversion measurement using Google Analytics](/docs/tutorials/ads-ios-on-device-measurement/step-3) |\n| Step 4: [Troubleshoot and handle common issues](/docs/tutorials/ads-ios-on-device-measurement/step-4) |\n\n\u003cbr /\u003e\n\nThe first step is to implement a sign-in experience to allow users to provide\ntheir email addresses or phone number.\n\n**The authentication system that you use must provide an email address or\nphone number associated with the user.** The following steps outline the process\nfor securely collecting sign-in information using Firebase Authentication, but you\ncan skip this step if you already have an authentication system that collects\nuser emails or phone numbers and continue to [Step 2: Integrate Google Analytics](/docs/tutorials/ads-ios-on-device-measurement/step-2).\n\n\u003cbr /\u003e\n\n**Make sure you have the prerequisites for this tutorial**\n\n\u003cbr /\u003e\n\n- Your own app that can run on iOS 12 or higher\n\n- Your app registered as a Firebase App that's linked to Google Analytics\n and Ads\n\n- Your preferred IDE\n\n \u003cbr /\u003e\n\n\u003cbr /\u003e\n\nSet up an authentication system\n\nUse a Firebase Authentication sign-in method\n\nYou can use Firebase Authentication to allow users to sign in to your app using one or\nmore sign-in methods, including email address, phone number, password sign-in,\nand federated identity providers (like Google, Facebook or Twitter).\nPlease review [Get started with Firebase Authentication](/docs/auth/ios/start).\n\nIntegrate Firebase Authentication with a custom authentication system\n\nAlternatively, you can integrate Firebase Authentication with a custom\nauthentication system by modifying your authentication server to produce custom\nsigned tokens when a user successfully signs in. Your app receives this token\nand uses it to authenticate with Firebase. Please review [Get started with a custom\nauthentication system](/docs/auth/ios/custom-auth).\n\nGet the authenticated user's email address or phone number\n\nAfter you've set up an authentication system with Firebase Authentication, you can\nget the currently signed-in user.\n\nThe recommended way to get the current user is by setting a listener on the\n`Auth` object: \n\nSwift \n\n```swift\nhandle = Auth.auth().addStateDidChangeListener { auth, user in\n // Get the user's email address\n let email = user.email\n // or get their phone number\n let phoneNumber = user.phoneNumber\n // ...\n}\n```\n\nObjective-C \n\n```objective-c\nself.handle = [[FIRAuth auth]\n addAuthStateDidChangeListener:^(FIRAuth *_Nonnull auth, FIRUser *_Nullable user) {\n // Get the user's email address\n NSString *email = user.email;\n // or get their phone number\n NSString *phoneNumber = user.phoneNumber;\n // ...\n }];\n```\n\nUnity \n\n```c#\nFirebase.Auth.FirebaseAuth auth;\nFirebase.Auth.FirebaseUser user;\n\n// Handle initialization of the necessary firebase modules:\nvoid InitializeFirebase() {\n auth = Firebase.Auth.FirebaseAuth.DefaultInstance;\n auth.StateChanged += AuthStateChanged;\n AuthStateChanged(this, null);\n}\n\n// Track state changes of the auth object.\nvoid AuthStateChanged(object sender, System.EventArgs eventArgs) {\n if (auth.CurrentUser != user) {\n bool signedIn = user != auth.CurrentUser && auth.CurrentUser != null;\n user = auth.CurrentUser;\n if (signedIn) {\n // Get the user's email address\n string email = user.Email;\n // or get their phone number\n string phoneNumber = user.PhoneNumber;\n // ...\n }\n }\n}\n\n// Handle removing subscription and reference to the Auth instance.\n// Automatically called by a Monobehaviour after Destroy is called on it.\nvoid OnDestroy() {\n auth.StateChanged -= AuthStateChanged;\n auth = null;\n}\n```\n| **Note:** Find more code examples demonstrating Firebase Authentication in the [Firebase quickstarts](https://github.com/firebase/quickstart-ios).\n\n\u003cbr /\u003e\n\n*** ** * ** ***\n\n\u003cbr /\u003e\n\n[arrow_back_ios**Introduction**](/docs/tutorials/ads-ios-on-device-measurement/index-first-party)\n[**Step 2** : Integrate Google Analyticsarrow_forward_ios](/docs/tutorials/ads-ios-on-device-measurement/step-2)\n\n\u003cbr /\u003e\n\n*** ** * ** ***"]]