{"id":17565,"date":"2021-04-08T10:52:50","date_gmt":"2021-04-08T10:52:50","guid":{"rendered":"https:\/\/www.bacancytechnology.com\/blog\/?p=17565"},"modified":"2024-07-17T06:18:59","modified_gmt":"2024-07-17T06:18:59","slug":"email-authentication-using-firebase-auth-and-flutter","status":"publish","type":"post","link":"https:\/\/www.bacancytechnology.com\/blog\/email-authentication-using-firebase-auth-and-flutter","title":{"rendered":"Email and Password Authentication Using Firebase Auth + Flutter"},"content":{"rendered":"<h2>Introduction<\/h2>\n<p>Rarely have we seen that mobile applications are connected to the backend. There are other platforms- AWS or Azure, but no platform could stand Firebase. With the help of Firebase and Flutter, one can develop mobile applications in a better way. <\/p>\n<p>In this tutorial, we will learn about building a demo application from scratch and implementing Email Authentication using <b>Firebase Auth + Flutter<\/b>.<\/p>\n<h2>Tutorial Goal: Email and Password Authentication using Firebase Auth + Flutter<\/h2>\n<p><strong>What are we building?<\/strong><\/p>\n<p>The step-by-step guide will help to us build a basic application where we can sign up and login with email and password using flutter + firebase authentication. Watch the below video to get the idea of our demo app. <\/p>\n<p><iframe loading=\"lazy\" width=\"560\" height=\"315\" src=\"https:\/\/www.youtube.com\/embed\/tJxVtWPJnKg\" title=\"YouTube video player\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen><\/iframe><\/p>\n<h2>What is Firebase Authentication?<\/h2>\n<p>Most of the applications require authentication to verify the user\u2019s identity. Firebase Authentication allows you to use its back-end services by providing SDKs and convenient UI libraries for user authentication in your app. It makes the process less complicated and easy to develop. One can authenticate the user with the help of passwords, phone numbers, or identity providers ( Facebook, Google, and Twitter).<\/p>\n<h3>What does Firebase Authentication provide?<\/h3>\n<ul class=\"bullets text-left\">\n<li>Email\/password authentication<\/li>\n<li>Sign in with Google, Apple, Facebook, Twitter, Github<\/li>\n<li>Phone number authentication<\/li>\n<li>Custom authentication<\/li>\n<li>Anonymous authentication<\/li>\n<\/ul>\n<p>From the list mentioned above, I\u2019ll be covering sign up and sign in with email and password <em>Firebase auth + Flutter<\/em>. So without further ado, let\u2019s get started with some technical work.<\/p>\n<h2>Steps to Implement Emai and Passwordl Authentication using Flutter Firebase Auth<\/h2>\n<p>Follow the steps to Firebase email and password authentication in the Flutter application. <\/p>\n<h3>1. Create Flutter project<\/h3>\n<p>Run the below command to create a flutter project. You can name it anything.<\/p>\n<pre>flutter_firebase_auth\r\nflutter create flutter_firebase_auth<\/pre>\n<h3>2. Add dependencies<\/h3>\n<p>Update your <strong>pubspec.yaml<\/strong> file to add dependencies.<\/p>\n<pre>dependencies:\r\n flutter_test:\r\n   sdk: flutter\r\n cupertino_icons: ^1.0.2\r\n firebase_auth: ^1.0.1 # add this line\r\n firebase_core: ^1.0.2 # add this line\r\n<\/pre>\n<p>Run the following command to install the packages.<\/p>\n<pre>flutter pub get<\/pre>\n<p>Your <strong>pubspec.yaml<\/strong> file would look something like this-<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.bacancytechnology.com\/blog\/wp-content\/uploads\/2021\/04\/0_YAgja862VoxJBdHK-300x150.png\" alt=\"Add dependencies\" width=\"300\" height=\"150\" class=\"alignnone size-medium wp-image-17568\" srcset=\"https:\/\/www.bacancytechnology.com\/blog\/wp-content\/uploads\/2021\/04\/0_YAgja862VoxJBdHK-300x150.png 300w, https:\/\/www.bacancytechnology.com\/blog\/wp-content\/uploads\/2021\/04\/0_YAgja862VoxJBdHK.png 710w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/p>\n<p>For using these packages, we need to import them as mentioned below.<\/p>\n<pre>import 'package:firebase_auth\/firebase_auth.dart';\r\nimport 'package:firebase_core\/firebase_core.dart';\r\n<\/pre>\n<p>Further moving towards the initial Firebase Setup.<\/p>\n<h3>3. Create Firebase Project<\/h3>\n<p>We need to create a Firebase project; for that follow the instructions. <\/p>\n<ul class=\"bullets text-left\">\n<li>Visit the <strong><em>Firebase Console<\/em><\/strong>.<\/li>\n<li>Start by adding a <strong><em>New Project<\/em><\/strong><\/li>\n<li>Giving the project a name and agreeing to all they\u2019ve asked<\/li>\n<li>Click <strong><em>\u2018Create Project.\u2019<\/em><\/strong><\/li>\n<\/ul>\n<p>Once you\u2019re done creating the project, it\u2019s time to integrate it with Android and iOS applications.<\/p>\n<p class=\"boxed bg--secondary\" style=\"border: 1px solid #c7c7c7; box-shadow: 0 0 40px rgba(0, 0, 0, 0.2);\"><strong><em><span style=\"font-size:22px; color:#000;\">Stop wasting time and start taking actions!<\/span><br \/>\nWant to build a high-performance Flutter app? Get in touch with our Flutter community to develop your dream project. We are here to serve your purpose. Contact us and <a href=\"https:\/\/www.bacancytechnology.com\/hire-flutter-developer\" target=\"_blank\" rel=\"noopener\">hire Flutter developer<\/a> now!<\/em><\/strong><\/p>\n<h3>4. Configure Firebase with Android and iOS Application<\/h3>\n<p>For configuring the applications, first click on +Add app and later on iOS.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.bacancytechnology.com\/blog\/wp-content\/uploads\/2021\/04\/0_bSiQf2yhR0SS47nq-300x71.png\" alt=\"Click on Add App\" width=\"300\" height=\"71\" class=\"alignnone size-medium wp-image-17596\" srcset=\"https:\/\/www.bacancytechnology.com\/blog\/wp-content\/uploads\/2021\/04\/0_bSiQf2yhR0SS47nq-300x71.png 300w, https:\/\/www.bacancytechnology.com\/blog\/wp-content\/uploads\/2021\/04\/0_bSiQf2yhR0SS47nq.png 676w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.bacancytechnology.com\/blog\/wp-content\/uploads\/2021\/04\/0_pWcKmYnZ-jY2AfEw-300x72.png\" alt=\"Click on iOS\" width=\"300\" height=\"72\" class=\"alignnone size-medium wp-image-17597\" srcset=\"https:\/\/www.bacancytechnology.com\/blog\/wp-content\/uploads\/2021\/04\/0_pWcKmYnZ-jY2AfEw-300x72.png 300w, https:\/\/www.bacancytechnology.com\/blog\/wp-content\/uploads\/2021\/04\/0_pWcKmYnZ-jY2AfEw.png 605w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/p>\n<h3><u>\u27a1 Configure iOS App<\/u><\/h3>\n<p><strong>Register iOS application <\/strong><\/p>\n<p>For registering the iOS app, you have to provide unique iOS bundle ID &#8211; your iOS app bundle identifier. You can find it in the general setting of Xcode, by default it will take com.example.application_name. The next field App nickname is optional.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.bacancytechnology.com\/blog\/wp-content\/uploads\/2021\/04\/004-300x181.png\" alt=\"Add Firebase to iOS app\" width=\"300\" height=\"181\" class=\"alignnone size-medium wp-image-17599\" srcset=\"https:\/\/www.bacancytechnology.com\/blog\/wp-content\/uploads\/2021\/04\/004-300x181.png 300w, https:\/\/www.bacancytechnology.com\/blog\/wp-content\/uploads\/2021\/04\/004-1024x617.png 1024w, https:\/\/www.bacancytechnology.com\/blog\/wp-content\/uploads\/2021\/04\/004-768x463.png 768w, https:\/\/www.bacancytechnology.com\/blog\/wp-content\/uploads\/2021\/04\/004.png 1100w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/p>\n<p><strong>Download iOS Config file<\/strong><\/p>\n<p>After filling the required fields, you\u2019ll see something like this. Further click on Download <em>GoogleServices<\/em>-Info.plist and place it in MyApplication folder as shown below.<\/p>\n<p>For Linux\/Windows, place this file in <strong>ios\/Runner\/Directory<\/strong>.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.bacancytechnology.com\/blog\/wp-content\/uploads\/2021\/04\/005-300x181.png\" alt=\"Download config file\" width=\"300\" height=\"181\" class=\"alignnone size-medium wp-image-17600\" srcset=\"https:\/\/www.bacancytechnology.com\/blog\/wp-content\/uploads\/2021\/04\/005-300x181.png 300w, https:\/\/www.bacancytechnology.com\/blog\/wp-content\/uploads\/2021\/04\/005-1024x617.png 1024w, https:\/\/www.bacancytechnology.com\/blog\/wp-content\/uploads\/2021\/04\/005-768x463.png 768w, https:\/\/www.bacancytechnology.com\/blog\/wp-content\/uploads\/2021\/04\/005.png 1100w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/p>\n<p>Skip steps (3) and (4) as we are using packages. Hit \u2018Continue to console\u2019 for completing the process.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.bacancytechnology.com\/blog\/wp-content\/uploads\/2021\/04\/006-300x196.png\" alt=\"Add firebase to your iOS app\" width=\"300\" height=\"196\" class=\"alignnone size-medium wp-image-17601\" srcset=\"https:\/\/www.bacancytechnology.com\/blog\/wp-content\/uploads\/2021\/04\/006-300x196.png 300w, https:\/\/www.bacancytechnology.com\/blog\/wp-content\/uploads\/2021\/04\/006-1024x669.png 1024w, https:\/\/www.bacancytechnology.com\/blog\/wp-content\/uploads\/2021\/04\/006-768x502.png 768w, https:\/\/www.bacancytechnology.com\/blog\/wp-content\/uploads\/2021\/04\/006.png 1100w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/p>\n<h3><u>\u27a1 Configure Android App<\/u><\/h3>\n<p><strong>Register Android application <\/strong><\/p>\n<p>For registering the android app, you have to provide a unique package name. For that, you can find it at <em>android>app>build.gradle<\/em>, by default it will take <em>com.example.application_name<\/em>. The next <strong>field App nickname<\/strong> is optional.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.bacancytechnology.com\/blog\/wp-content\/uploads\/2021\/04\/001-300x181.png\" alt=\"Register your Android application\" width=\"300\" height=\"181\" class=\"alignnone size-medium wp-image-17591\" srcset=\"https:\/\/www.bacancytechnology.com\/blog\/wp-content\/uploads\/2021\/04\/001-300x181.png 300w, https:\/\/www.bacancytechnology.com\/blog\/wp-content\/uploads\/2021\/04\/001-1024x617.png 1024w, https:\/\/www.bacancytechnology.com\/blog\/wp-content\/uploads\/2021\/04\/001-768x463.png 768w, https:\/\/www.bacancytechnology.com\/blog\/wp-content\/uploads\/2021\/04\/001.png 1100w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/p>\n<p><strong>Download Android Config file<\/strong><\/p>\n<p>After filling the required fields, you\u2019ll see something like this. Download <em>google-services.json<\/em> and place it in <em>MyApplication\/app<\/em> folder.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.bacancytechnology.com\/blog\/wp-content\/uploads\/2021\/04\/002-300x181.png\" alt=\"Register your Android application\" width=\"300\" height=\"181\" class=\"alignnone size-medium wp-image-17592\" srcset=\"https:\/\/www.bacancytechnology.com\/blog\/wp-content\/uploads\/2021\/04\/002-300x181.png 300w, https:\/\/www.bacancytechnology.com\/blog\/wp-content\/uploads\/2021\/04\/002-1024x617.png 1024w, https:\/\/www.bacancytechnology.com\/blog\/wp-content\/uploads\/2021\/04\/002-768x463.png 768w, https:\/\/www.bacancytechnology.com\/blog\/wp-content\/uploads\/2021\/04\/002.png 1100w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/p>\n<p>You can skip the next step as we are using: <em><a href=\"https:\/\/pub.dev\/packages\/firebase_core\" target=\"_blank\" rel=\"noopener\">Firebase core<\/a> and <a href=\"https:\/\/pub.dev\/packages\/firebase_auth\" target=\"_blank\" rel=\"noopener\">Firebase auth<\/a> packages<\/em>. Click \u2018Continue to Console\u2019 to complete the process.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.bacancytechnology.com\/blog\/wp-content\/uploads\/2021\/04\/003-300x181.png\" alt=\"Register your Android application\" width=\"300\" height=\"181\" class=\"alignnone size-medium wp-image-17593\" srcset=\"https:\/\/www.bacancytechnology.com\/blog\/wp-content\/uploads\/2021\/04\/003-300x181.png 300w, https:\/\/www.bacancytechnology.com\/blog\/wp-content\/uploads\/2021\/04\/003-1024x617.png 1024w, https:\/\/www.bacancytechnology.com\/blog\/wp-content\/uploads\/2021\/04\/003-768x463.png 768w, https:\/\/www.bacancytechnology.com\/blog\/wp-content\/uploads\/2021\/04\/003.png 1100w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/p>\n<h3>5. Enable Email\/Password Authentication in Firebase<\/h3>\n<p>On visiting the Firebase dashboard, click \u2018Authentication.\u2019<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.bacancytechnology.com\/blog\/wp-content\/uploads\/2021\/04\/007-300x140.png\" alt=\"Enable Firebase Email Authentication\" width=\"300\" height=\"140\" class=\"alignnone size-medium wp-image-17602\" srcset=\"https:\/\/www.bacancytechnology.com\/blog\/wp-content\/uploads\/2021\/04\/007-300x140.png 300w, https:\/\/www.bacancytechnology.com\/blog\/wp-content\/uploads\/2021\/04\/007-1024x478.png 1024w, https:\/\/www.bacancytechnology.com\/blog\/wp-content\/uploads\/2021\/04\/007-768x359.png 768w, https:\/\/www.bacancytechnology.com\/blog\/wp-content\/uploads\/2021\/04\/007.png 1100w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/p>\n<p>Under the Sign-in method click \u2018Email\/Password\u2019 and enable it using the toggle button. Use the below screenshots for your reference.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.bacancytechnology.com\/blog\/wp-content\/uploads\/2021\/04\/008-300x104.png\" alt=\"Firebase Email Authentication Sign-in method\" width=\"300\" height=\"104\" class=\"alignnone size-medium wp-image-17603\" srcset=\"https:\/\/www.bacancytechnology.com\/blog\/wp-content\/uploads\/2021\/04\/008-300x104.png 300w, https:\/\/www.bacancytechnology.com\/blog\/wp-content\/uploads\/2021\/04\/008-1024x354.png 1024w, https:\/\/www.bacancytechnology.com\/blog\/wp-content\/uploads\/2021\/04\/008-768x265.png 768w, https:\/\/www.bacancytechnology.com\/blog\/wp-content\/uploads\/2021\/04\/008.png 1100w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.bacancytechnology.com\/blog\/wp-content\/uploads\/2021\/04\/009-300x120.png\" alt=\"setting and integrating Firebase Authentication\" width=\"300\" height=\"120\" class=\"alignnone size-medium wp-image-17604\" srcset=\"https:\/\/www.bacancytechnology.com\/blog\/wp-content\/uploads\/2021\/04\/009-300x120.png 300w, https:\/\/www.bacancytechnology.com\/blog\/wp-content\/uploads\/2021\/04\/009-1024x410.png 1024w, https:\/\/www.bacancytechnology.com\/blog\/wp-content\/uploads\/2021\/04\/009-768x307.png 768w, https:\/\/www.bacancytechnology.com\/blog\/wp-content\/uploads\/2021\/04\/009.png 1100w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/p>\n<p>So, we are done setting and integrating your Flutter app with Firebase email\/password authentication.<\/p>\n<h3>6. Initialize Firebase App<\/h3>\n<p>Open <em>main.dart<\/em> and use the following code snippet to initialize Firebase App.<\/p>\n<p><strong>\/\/ main.dart<\/strong><\/p>\n<pre>future main() async {\r\n  WidgetsFlutterBinding.ensureInitialized();\r\n  await Firebase.initializeApp();\r\n  runApp(MyApp());\r\n}<\/pre>\n<h3>7. Create Helper Class for Authentication<\/h3>\n<p>Create a file, name it according to your choice; here authentication.dart and use the following code for creating helper class for authentication.<\/p>\n<p><strong>\/\/ authentication.dart<\/strong><\/p>\n<pre>import 'package:firebase_auth\/firebase_auth.dart';\r\n\r\nclass AuthenticationHelper {\r\n  final FirebaseAuth _auth = FirebaseAuth.instance;\r\n  get user => _auth.currentUser;\r\n\r\n \/\/SIGN UP METHOD\r\n  Future signUp({String email, String password}) async {\r\n    try {\r\n      await _auth.createUserWithEmailAndPassword(\r\n        email: email,\r\n        password: password,\r\n      );\r\n      return null;\r\n    } on FirebaseAuthException catch (e) {\r\n      return e.message;\r\n    }\r\n  }\r\n\r\n  \/\/SIGN IN METHOD\r\n  Future signIn({String email, String password}) async {\r\n    try {\r\n      await _auth.signInWithEmailAndPassword(email: email, password: password);\r\n      return null;\r\n    } on FirebaseAuthException catch (e) {\r\n      return e.message;\r\n    }\r\n  }\r\n\r\n  \/\/SIGN OUT METHOD\r\n  Future signOut() async {\r\n    await _auth.signOut();\r\n\r\n    print('signout');\r\n  }\r\n}\r\n<\/pre>\n<p>We will call the AuthenticationHelper from SignUp and Login components on clicking the signup and login button, respectively. These two functions will take two parameters and then further pass it for Firebase Authentication.<\/p>\n<p>You Might Also Like to Read: <a href=\"https:\/\/www.bacancytechnology.com\/blog\/flutter-vs-react-native#3\" target=\"_blank\" rel=\"noopener\">Flutter vs React Native Comparision Which one is Best?<\/a><\/p>\n<h3>8. Create components for Login and Sign Up<\/h3>\n<p>Create two components for login and signup \u2013 Login.dart and Signup.dart, respectively. <\/p>\n<p>Call AuthenticationHelper, which we created in the above step. <\/p>\n<p>Use the following code snippet to perform on clicking the Sign Up button.<\/p>\n<p><strong>\/\/ Signup.dart<\/strong><\/p>\n<pre>\/\/ Get username and password from the user.Pass the data to \r\n\/\/ helper method\r\n\r\nAuthenticationHelper()\r\n   .signUp(email: email, password: password)\r\n   .then((result) {\r\n    \tif (result == null) {\r\n        Navigator.pushReplacement(context,\r\n           MaterialPageRoute(builder: (context) => Home()));\r\n       } else {\r\n          Scaffold.of(context).showSnackBar(SnackBar(\r\n          content: Text(\r\n              result,\r\n              style: TextStyle(fontSize: 16),\r\n             ),\r\n          ));\r\n       }\r\n  });\r\n<\/pre>\n<p>Use the following code snippet to perform on clicking the Login button.<\/p>\n<p><strong>\/\/ Login.dart<\/strong><\/p>\n<pre>AuthenticationHelper()\r\n   .signIn(email: email, password: password)\r\n      .then((result) {\r\n         if (result == null) {\r\n           Navigator.pushReplacement(context,\r\n             MaterialPageRoute(builder: (context) => Home()));\r\n          } else {\r\n             Scaffold.of(context).showSnackBar(SnackBar(\r\n                 content: Text(\r\n                 result,\r\n                style: TextStyle(fontSize: 16),\r\n                   ),\r\n              ));\r\n           }\r\n      });\r\n<\/pre>\n<p>The function takes two arguments: email and password. On successfully executing the function and returning no errors, i.e., result == null, the app will be redirected to the Home page.<\/p>\n<h2>Github Repository: Flutter Firebase Auth Example<\/h2>\n<p>Feel free to visit the github repository: <a href=\"https:\/\/github.com\/dipak2726\/flutter_firebase_auth\" target=\"_blank\" rel=\"noopener\">firebase-auth-flutter-example<\/a> and clone the demo to play around with the code. <\/p>\n<h2>Conclusion<\/h2>\n<p>So this was all about implementing email\/password authentication using Firebase Auth + Flutter. I hope your purpose of landing on this tutorial has served you well. Flutter is a popular framework for developing mobile applications at our ease. The combination of Flutter and Firebase makes the development process more straightforward than before. Are you a Flutter enthusiast? Yes! Then Flutter tutorials page is for you! Learn and explore more about Flutter and start building your applications. We are a leading <a href=\"https:\/\/www.bacancytechnology.com\/flutter-app-development\" target=\"_blank\" rel=\"noopener\">Flutter App development Company<\/a> and have skillful and dedicated developers having expertise with Flutter as well as Firebase. In case you require a helping hand in developing your project, then contact us and hire Flutter app developer.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Introduction Rarely have we seen that mobile applications are connected to the backend. There are other platforms- AWS or Azure, but no platform could stand Firebase. With the help of Firebase and Flutter, one can develop mobile applications in a better way. In this tutorial, we will learn about building a demo application from scratch [&hellip;]<\/p>\n","protected":false},"author":171,"featured_media":17605,"comment_status":"open","ping_status":"open","sticky":false,"template":"blog-new-template.php","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"_lmt_disableupdate":"no","_lmt_disable":"no","footnotes":""},"categories":[1200],"tags":[],"coauthors":[2425],"class_list":["post-17565","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-flutter"],"acf":[],"modified_by":"Binal Prajapati","_links":{"self":[{"href":"https:\/\/www.bacancytechnology.com\/blog\/wp-json\/wp\/v2\/posts\/17565","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.bacancytechnology.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.bacancytechnology.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.bacancytechnology.com\/blog\/wp-json\/wp\/v2\/users\/171"}],"replies":[{"embeddable":true,"href":"https:\/\/www.bacancytechnology.com\/blog\/wp-json\/wp\/v2\/comments?post=17565"}],"version-history":[{"count":0,"href":"https:\/\/www.bacancytechnology.com\/blog\/wp-json\/wp\/v2\/posts\/17565\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.bacancytechnology.com\/blog\/wp-json\/wp\/v2\/media\/17605"}],"wp:attachment":[{"href":"https:\/\/www.bacancytechnology.com\/blog\/wp-json\/wp\/v2\/media?parent=17565"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.bacancytechnology.com\/blog\/wp-json\/wp\/v2\/categories?post=17565"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.bacancytechnology.com\/blog\/wp-json\/wp\/v2\/tags?post=17565"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.bacancytechnology.com\/blog\/wp-json\/wp\/v2\/coauthors?post=17565"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}