{"id":3985,"date":"2017-12-04T17:33:49","date_gmt":"2017-12-04T12:03:49","guid":{"rendered":"https:\/\/www.innovationm.com\/blog\/?p=3985"},"modified":"2023-01-20T18:55:50","modified_gmt":"2023-01-20T13:25:50","slug":"firebase-authentication-in-ios","status":"publish","type":"post","link":"https:\/\/www.innovationm.com\/blog\/firebase-authentication-in-ios\/","title":{"rendered":"Firebase Authentication in iOS"},"content":{"rendered":"<p>&nbsp;<\/p>\n<p><strong>Firebase Authentication in iOS<\/strong><\/p>\n<p>When You want to create a user based app where you want to feature or activity depends on Users. I can assume, you need User Login, Forget password and Registration screen for user-related interactions. In most of the cases, Login\/Registration User functionality doesn&#8217;t belong to Client end (i.e. iOS or Android App). It is related to backend where user-tables are maintained in a database so that every platform can validate\/operate on data. And, most of the time Client Application interacts with backend using REST APIs.<\/p>\n<p><img fetchpriority=\"high\" decoding=\"async\" class=\"alignnone size-full wp-image-3993\" src=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/11\/0627.sdt-news.png\" alt=\"\" width=\"1316\" height=\"543\" srcset=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/11\/0627.sdt-news.png 1316w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/11\/0627.sdt-news-300x124.png 300w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/11\/0627.sdt-news-768x317.png 768w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/11\/0627.sdt-news-1024x423.png 1024w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/11\/0627.sdt-news-624x257.png 624w\" sizes=\"(max-width: 1316px) 100vw, 1316px\" \/><\/p>\n<p>Firebase is a backend-as-service. And, it has a module called Firebase Authentication which targets User-related operations. It internally maintain a User Records for where you can perform defined operations like,<\/p>\n<ul>\n<li>Login (via, Email Address, Mobile Number)<\/li>\n<li>Registration<\/li>\n<li>Logged User<\/li>\n<li>Logout Session<\/li>\n<li>Forget Password<\/li>\n<li>Send Verification Mail to associated email address<\/li>\n<li>Update Password\/Email<\/li>\n<li>Update Profile Information<\/li>\n<li>Delete User<\/li>\n<li>OpenID Connect (like Google SignIn, Facebook Sign In, Twitter SignIn and Github Sign In)<\/li>\n<\/ul>\n<p><strong>Benefits of Firebase Authentication\u00a0<\/strong><\/p>\n<ul>\n<li>No Need to own a database. No need to create a backend. Firebase has done all your backend job. And, Handled most of the cases.<\/li>\n<li>Supports OpenID Connect. So,\u00a0 you can integrate Social Media Sign in.<\/li>\n<li>Cross-Platform SDK. It supports Android, iOS, Unity, Javascript, and Unity.<\/li>\n<li>Authentication via Phone Number<\/li>\n<\/ul>\n<p><strong>How to Setup Firebase App in Xcode<\/strong><\/p>\n<p><strong>Step.1<\/strong><\/p>\n<p>Log into <a href=\"https:\/\/console.firebase.google.com\/\">https:\/\/console.firebase.google.com\/<\/a>\u00a0and <strong>Add Project\u00a0<\/strong>with your name.<\/p>\n<p><img decoding=\"async\" class=\"alignnone size-full wp-image-3995\" src=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/11\/Screen-Shot-2017-11-28-at-3.00.10-PM.png\" alt=\"\" width=\"481\" height=\"421\" srcset=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/11\/Screen-Shot-2017-11-28-at-3.00.10-PM.png 481w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/11\/Screen-Shot-2017-11-28-at-3.00.10-PM-300x263.png 300w\" sizes=\"(max-width: 481px) 100vw, 481px\" \/><\/p>\n<p><strong>Step2.<\/strong><\/p>\n<p>Create your Project and select your region,<\/p>\n<p><img decoding=\"async\" class=\"alignnone size-full wp-image-3996\" src=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/11\/Screen-Shot-2017-11-28-at-3.01.24-PM.png\" alt=\"\" width=\"447\" height=\"464\" srcset=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/11\/Screen-Shot-2017-11-28-at-3.01.24-PM.png 447w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/11\/Screen-Shot-2017-11-28-at-3.01.24-PM-289x300.png 289w\" sizes=\"(max-width: 447px) 100vw, 447px\" \/><\/p>\n<p>&nbsp;<\/p>\n<p><strong>Step3.<\/strong><\/p>\n<p>Choose your Platform. Here, I&#8217;ll choose <strong>iOS<\/strong><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-3997\" src=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/11\/Screen-Shot-2017-11-28-at-3.07.08-PM.png\" alt=\"\" width=\"1265\" height=\"528\" srcset=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/11\/Screen-Shot-2017-11-28-at-3.07.08-PM.png 1265w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/11\/Screen-Shot-2017-11-28-at-3.07.08-PM-300x125.png 300w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/11\/Screen-Shot-2017-11-28-at-3.07.08-PM-768x321.png 768w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/11\/Screen-Shot-2017-11-28-at-3.07.08-PM-1024x427.png 1024w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/11\/Screen-Shot-2017-11-28-at-3.07.08-PM-624x260.png 624w\" sizes=\"(max-width: 1265px) 100vw, 1265px\" \/><\/p>\n<p><strong>Step4.<\/strong><\/p>\n<p>Here, add your iOS App bundle Id (say, com.abcd.myDemo)<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-3998\" src=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/11\/Screen-Shot-2017-11-28-at-3.08.03-PM.png\" alt=\"\" width=\"694\" height=\"554\" srcset=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/11\/Screen-Shot-2017-11-28-at-3.08.03-PM.png 694w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/11\/Screen-Shot-2017-11-28-at-3.08.03-PM-300x239.png 300w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/11\/Screen-Shot-2017-11-28-at-3.08.03-PM-624x498.png 624w\" sizes=\"(max-width: 694px) 100vw, 694px\" \/><\/p>\n<p><strong>Step5<\/strong>.<\/p>\n<p>Download <strong>GoogleService-Info.plist\u00a0<\/strong>and import in your project root directory.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-3999\" src=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/11\/Screen-Shot-2017-11-28-at-3.10.24-PM.png\" alt=\"\" width=\"689\" height=\"611\" srcset=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/11\/Screen-Shot-2017-11-28-at-3.10.24-PM.png 689w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/11\/Screen-Shot-2017-11-28-at-3.10.24-PM-300x266.png 300w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/11\/Screen-Shot-2017-11-28-at-3.10.24-PM-624x553.png 624w\" sizes=\"(max-width: 689px) 100vw, 689px\" \/><\/p>\n<p><strong>Step6.<\/strong><\/p>\n<p>Rest is Firebase pod installation. This is I&#8217;m assuming that you know how to install pod in your\u00a0 project.<\/p>\n<pre class=\"c5e-code-block c5e-ios-setup-code\">pod 'Firebase\/Core'\r\npod 'Firebase\/Auth'<\/pre>\n<p>And, add Firebase Initializer method in AppDebelagte.<\/p>\n<pre class=\"lang:swift decode:true\">import UIKit\r\n<strong>import Firebase<\/strong>\r\n\r\n@UIApplicationMain\r\nclass AppDelegate: UIResponder, UIApplicationDelegate {\r\n\r\n  var window: UIWindow?\r\n\r\n  func application(_ application: UIApplication,\r\n    didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?)\r\n    -&gt; Bool {\r\n    <strong>FirebaseApp.configure()<\/strong>\r\n    return true\r\n  }\r\n}<\/pre>\n<p>&nbsp;<\/p>\n<p><strong>AuthenticationWorker.swift\u00a0<\/strong><\/p>\n<p>Its a wrapper class around Firebase Authentication Method which will help you as a developer to abstract Firebase Authentication method under a single class. It&#8217;s a reusable class so you can use it any of your independent projects.<\/p>\n<p>Add <strong>AuthenticationWorker.Swift<\/strong> file in your project before using following methods.<\/p>\n<ul>\n<li><strong>Login User<\/strong><\/li>\n<\/ul>\n<p>In AuthenticationWorker class, there is a method called <strong>login(user: handler:)\u00a0<\/strong>which takes a UserModel type object and gives a completion handler:(User, Error) as a response.<\/p>\n<pre class=\"lang:swift decode:true\">let user = UserModel(email: \"ab.abhishek.ravi@gmail.com\", password: \"myPassword\")\r\n\r\nAuthenticationWorker.shared.login(user: user, handler: { (user, error) in\r\n\r\nguard error == nil else {\r\n\r\n  \/\/ Error Occurred While Authentication\r\n  print(error.localizedDescription)\r\n\r\n  return\r\n}\r\n\r\n\/\/Successfully Authenticated\r\nprint(user)\r\n\r\n})<\/pre>\n<p>&nbsp;<\/p>\n<ul>\n<li><strong>Register New User\u00a0<\/strong><\/li>\n<\/ul>\n<p>You can signup new user via new email address, mobile number. AuthenticationWorker class has a method register(user:, handler:)<\/p>\n<pre class=\"lang:swift decode:true\">AuthenticationWorker.shared.register(user: user, handler: { (user, error) in\r\n\r\nguard error == nil else {\r\n\r\n  \/\/onError Occurred While Registering\r\n  print(error.localizedDescription)\r\n  return\r\n}\r\n\r\n\/\/onSuccessfull Registration\r\nprint(user)\r\n\r\n})<\/pre>\n<p>&nbsp;<\/p>\n<ul>\n<li><strong>Get LoggedIn User<\/strong><\/li>\n<\/ul>\n<p>After Successful logged in, you can access the current logged in user from the method isLoggedIn() which will return an object of User type.<\/p>\n<pre class=\"lang:swift decode:true\">if let user = AuthenticationWorker.shared.isLoggedIn() {\r\n            print(user)\r\n}<\/pre>\n<ul>\n<li><strong>Update Password<\/strong><\/li>\n<\/ul>\n<p>You can update password of the logged account. So, there is a method updatePassword(newPassword:, handler:) in AuthenticationWorker class.<\/p>\n<pre class=\"lang:swift decode:true\">AuthenticationWorker.shared.updatePassword(newPassword: \"NewPassword\") { (hasChanged, error) in\r\n\r\n            guard error == nil else {\r\n                print(error?.localizedDescription)\r\n                return\r\n            }\r\n\r\n            \/\/onSuccess\r\n            print(hasChanged)\r\n}<\/pre>\n<p>&nbsp;<\/p>\n<ul>\n<li><strong>Update Email Address<\/strong><\/li>\n<\/ul>\n<p>To update the email address of logged In account, you need to call updateEmail(newEmail: handler:) method<\/p>\n<pre class=\"lang:swift decode:true\">AuthenticationWorker.shared.updateEmailAddress(newEmail: \"newEmailAddress@gmail.com\") { (user, error) in\r\n\r\n            guard error == nil else {\r\n                print(error?.localizedDescription)\r\n                return\r\n            }\r\n\r\n            \/\/Successfully changed Email Address of LoggedIn Account\r\n            print(user)\r\n}<\/pre>\n<p>&nbsp;<\/p>\n<ul>\n<li><strong>Send Verification Mail<\/strong><\/li>\n<\/ul>\n<p>When a new user registers himself, he should get a confirmation mail to its mail address to verify the account.<\/p>\n<pre class=\"lang:swift decode:true\">AuthenticationWorker.shared.sendVerificationMail { (hasSent, error) in\r\n\r\n            guard error == nil else {\r\n                print(error?.localizedDescription)\r\n                return\r\n            }\r\n\r\n            \/\/onSuccessfully Sent Verification Mail\r\n            print(hasSent)\r\n}<\/pre>\n<ul>\n<li><strong>Remove User\u00a0<\/strong><\/li>\n<\/ul>\n<p>You can also remove an existing user from user-list.<\/p>\n<pre class=\"lang:swift decode:true\">AuthenticationWorker.shared.deleteUser { (hasDeleted, error) in\r\n\r\n            guard error == nil else {\r\n                print(error?.localizedDescription)\r\n                return\r\n            }\r\n\r\n            \/\/onSuccessfull Deletion of User\r\n            print(hasDeleted)\r\n}<\/pre>\n<p>&nbsp;<\/p>\n<p><strong>Download AuthenticationWorker.swift<\/strong><\/p>\n<p><a href=\"https:\/\/github.com\/greenSyntax\/ios-source\/blob\/master\/Firebase\/Authentication\/AuthenticationWorker.swift\">https:\/\/github.com\/greenSyntax\/ios-source\/blob\/master\/Firebase\/Authentication\/AuthenticationWorker.swift<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>&nbsp; Firebase Authentication in iOS When You want to create a user based app where you want to feature or activity depends on Users. I can assume, you need User Login, Forget password and Registration screen for user-related interactions. In most of the cases, Login\/Registration User functionality doesn&#8217;t belong to Client end (i.e. iOS or [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":4001,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3,71],"tags":[182,232,235,234,233,236],"class_list":["post-3985","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ios","category-mobile","tag-firebase","tag-firebase-authentication","tag-firebase-ios","tag-firebase-tutorial","tag-firebase-user","tag-user-operations"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Firebase Authentication in iOS - InnovationM - Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.innovationm.com\/blog\/firebase-authentication-in-ios\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Firebase Authentication in iOS - InnovationM - Blog\" \/>\n<meta property=\"og:description\" content=\"&nbsp; Firebase Authentication in iOS When You want to create a user based app where you want to feature or activity depends on Users. I can assume, you need User Login, Forget password and Registration screen for user-related interactions. In most of the cases, Login\/Registration User functionality doesn&#8217;t belong to Client end (i.e. iOS or [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.innovationm.com\/blog\/firebase-authentication-in-ios\/\" \/>\n<meta property=\"og:site_name\" content=\"InnovationM - Blog\" \/>\n<meta property=\"article:published_time\" content=\"2017-12-04T12:03:49+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-01-20T13:25:50+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/11\/1.-Firebase-Authentication__1.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1140\" \/>\n\t<meta property=\"og:image:height\" content=\"633\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"InnovationM Admin\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"InnovationM Admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/firebase-authentication-in-ios\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/firebase-authentication-in-ios\\\/\"},\"author\":{\"name\":\"InnovationM Admin\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/#\\\/schema\\\/person\\\/a831bf4602d69d1fa452e3de0c8862ed\"},\"headline\":\"Firebase Authentication in iOS\",\"datePublished\":\"2017-12-04T12:03:49+00:00\",\"dateModified\":\"2023-01-20T13:25:50+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/firebase-authentication-in-ios\\\/\"},\"wordCount\":539,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/firebase-authentication-in-ios\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/wp-content\\\/uploads\\\/2017\\\/11\\\/1.-Firebase-Authentication__1.png\",\"keywords\":[\"Firebase\",\"Firebase Authentication\",\"Firebase iOS\",\"Firebase Tutorial\",\"Firebase User\",\"User Operations\"],\"articleSection\":[\"iOS\",\"Mobile\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/firebase-authentication-in-ios\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/firebase-authentication-in-ios\\\/\",\"url\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/firebase-authentication-in-ios\\\/\",\"name\":\"Firebase Authentication in iOS - InnovationM - Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/firebase-authentication-in-ios\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/firebase-authentication-in-ios\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/wp-content\\\/uploads\\\/2017\\\/11\\\/1.-Firebase-Authentication__1.png\",\"datePublished\":\"2017-12-04T12:03:49+00:00\",\"dateModified\":\"2023-01-20T13:25:50+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/#\\\/schema\\\/person\\\/a831bf4602d69d1fa452e3de0c8862ed\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/firebase-authentication-in-ios\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/firebase-authentication-in-ios\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/firebase-authentication-in-ios\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/wp-content\\\/uploads\\\/2017\\\/11\\\/1.-Firebase-Authentication__1.png\",\"contentUrl\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/wp-content\\\/uploads\\\/2017\\\/11\\\/1.-Firebase-Authentication__1.png\",\"width\":1140,\"height\":633},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/firebase-authentication-in-ios\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Firebase Authentication in iOS\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/\",\"name\":\"InnovationM - Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/#\\\/schema\\\/person\\\/a831bf4602d69d1fa452e3de0c8862ed\",\"name\":\"InnovationM Admin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5c99d9eece9dfbc82297cf34ddd58e9fe05bb52fe66c8f6bf6c0a45bfb6d7629?s=96&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5c99d9eece9dfbc82297cf34ddd58e9fe05bb52fe66c8f6bf6c0a45bfb6d7629?s=96&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5c99d9eece9dfbc82297cf34ddd58e9fe05bb52fe66c8f6bf6c0a45bfb6d7629?s=96&r=g\",\"caption\":\"InnovationM Admin\"},\"sameAs\":[\"http:\\\/\\\/www.innovationm.com\\\/\"],\"url\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/author\\\/innovationmadmin\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Firebase Authentication in iOS - InnovationM - Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.innovationm.com\/blog\/firebase-authentication-in-ios\/","og_locale":"en_US","og_type":"article","og_title":"Firebase Authentication in iOS - InnovationM - Blog","og_description":"&nbsp; Firebase Authentication in iOS When You want to create a user based app where you want to feature or activity depends on Users. I can assume, you need User Login, Forget password and Registration screen for user-related interactions. In most of the cases, Login\/Registration User functionality doesn&#8217;t belong to Client end (i.e. iOS or [&hellip;]","og_url":"https:\/\/www.innovationm.com\/blog\/firebase-authentication-in-ios\/","og_site_name":"InnovationM - Blog","article_published_time":"2017-12-04T12:03:49+00:00","article_modified_time":"2023-01-20T13:25:50+00:00","og_image":[{"width":1140,"height":633,"url":"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/11\/1.-Firebase-Authentication__1.png","type":"image\/png"}],"author":"InnovationM Admin","twitter_misc":{"Written by":"InnovationM Admin","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.innovationm.com\/blog\/firebase-authentication-in-ios\/#article","isPartOf":{"@id":"https:\/\/www.innovationm.com\/blog\/firebase-authentication-in-ios\/"},"author":{"name":"InnovationM Admin","@id":"https:\/\/www.innovationm.com\/blog\/#\/schema\/person\/a831bf4602d69d1fa452e3de0c8862ed"},"headline":"Firebase Authentication in iOS","datePublished":"2017-12-04T12:03:49+00:00","dateModified":"2023-01-20T13:25:50+00:00","mainEntityOfPage":{"@id":"https:\/\/www.innovationm.com\/blog\/firebase-authentication-in-ios\/"},"wordCount":539,"commentCount":0,"image":{"@id":"https:\/\/www.innovationm.com\/blog\/firebase-authentication-in-ios\/#primaryimage"},"thumbnailUrl":"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/11\/1.-Firebase-Authentication__1.png","keywords":["Firebase","Firebase Authentication","Firebase iOS","Firebase Tutorial","Firebase User","User Operations"],"articleSection":["iOS","Mobile"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.innovationm.com\/blog\/firebase-authentication-in-ios\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.innovationm.com\/blog\/firebase-authentication-in-ios\/","url":"https:\/\/www.innovationm.com\/blog\/firebase-authentication-in-ios\/","name":"Firebase Authentication in iOS - InnovationM - Blog","isPartOf":{"@id":"https:\/\/www.innovationm.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.innovationm.com\/blog\/firebase-authentication-in-ios\/#primaryimage"},"image":{"@id":"https:\/\/www.innovationm.com\/blog\/firebase-authentication-in-ios\/#primaryimage"},"thumbnailUrl":"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/11\/1.-Firebase-Authentication__1.png","datePublished":"2017-12-04T12:03:49+00:00","dateModified":"2023-01-20T13:25:50+00:00","author":{"@id":"https:\/\/www.innovationm.com\/blog\/#\/schema\/person\/a831bf4602d69d1fa452e3de0c8862ed"},"breadcrumb":{"@id":"https:\/\/www.innovationm.com\/blog\/firebase-authentication-in-ios\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.innovationm.com\/blog\/firebase-authentication-in-ios\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.innovationm.com\/blog\/firebase-authentication-in-ios\/#primaryimage","url":"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/11\/1.-Firebase-Authentication__1.png","contentUrl":"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/11\/1.-Firebase-Authentication__1.png","width":1140,"height":633},{"@type":"BreadcrumbList","@id":"https:\/\/www.innovationm.com\/blog\/firebase-authentication-in-ios\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.innovationm.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Firebase Authentication in iOS"}]},{"@type":"WebSite","@id":"https:\/\/www.innovationm.com\/blog\/#website","url":"https:\/\/www.innovationm.com\/blog\/","name":"InnovationM - Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.innovationm.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.innovationm.com\/blog\/#\/schema\/person\/a831bf4602d69d1fa452e3de0c8862ed","name":"InnovationM Admin","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/5c99d9eece9dfbc82297cf34ddd58e9fe05bb52fe66c8f6bf6c0a45bfb6d7629?s=96&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/5c99d9eece9dfbc82297cf34ddd58e9fe05bb52fe66c8f6bf6c0a45bfb6d7629?s=96&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/5c99d9eece9dfbc82297cf34ddd58e9fe05bb52fe66c8f6bf6c0a45bfb6d7629?s=96&r=g","caption":"InnovationM Admin"},"sameAs":["http:\/\/www.innovationm.com\/"],"url":"https:\/\/www.innovationm.com\/blog\/author\/innovationmadmin\/"}]}},"_links":{"self":[{"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/posts\/3985","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/comments?post=3985"}],"version-history":[{"count":0,"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/posts\/3985\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/media\/4001"}],"wp:attachment":[{"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/media?parent=3985"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/categories?post=3985"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/tags?post=3985"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}