{"id":26569826,"url":"https://github.com/paishanmadusha/basic-firebase-authentication","last_synced_at":"2026-02-16T04:36:35.182Z","repository":{"id":282819414,"uuid":"949504771","full_name":"PAIshanMadusha/basic-firebase-authentication","owner":"PAIshanMadusha","description":"Flutter-based Basic Firebase Authentication App is an authentication system using Firebase Authentication. This app allows users to sign up, sign in, reset passwords, and use third-party authentication providers like Google and GitHub. Additionally, it supports anonymous login.","archived":false,"fork":false,"pushed_at":"2025-03-22T17:51:36.000Z","size":404,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-25T01:53:42.153Z","etag":null,"topics":["authentication","dart","firebase","firebase-auth","flutter","flutter-svg","github-authentication","google-authentication","mobile-app","wrapper"],"latest_commit_sha":null,"homepage":"","language":"Dart","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/PAIshanMadusha.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-03-16T16:00:09.000Z","updated_at":"2025-07-03T04:48:17.000Z","dependencies_parsed_at":"2025-07-24T22:28:45.091Z","dependency_job_id":"b48d3a04-4931-4a5e-be50-d660ef3061d2","html_url":"https://github.com/PAIshanMadusha/basic-firebase-authentication","commit_stats":null,"previous_names":["paishanmadusha/basic-firebase-authentication"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/PAIshanMadusha/basic-firebase-authentication","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PAIshanMadusha%2Fbasic-firebase-authentication","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PAIshanMadusha%2Fbasic-firebase-authentication/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PAIshanMadusha%2Fbasic-firebase-authentication/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PAIshanMadusha%2Fbasic-firebase-authentication/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/PAIshanMadusha","download_url":"https://codeload.github.com/PAIshanMadusha/basic-firebase-authentication/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PAIshanMadusha%2Fbasic-firebase-authentication/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29500554,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-16T03:57:51.541Z","status":"ssl_error","status_checked_at":"2026-02-16T03:55:59.854Z","response_time":115,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["authentication","dart","firebase","firebase-auth","flutter","flutter-svg","github-authentication","google-authentication","mobile-app","wrapper"],"created_at":"2025-03-22T21:37:27.740Z","updated_at":"2026-02-16T04:36:35.168Z","avatar_url":"https://github.com/PAIshanMadusha.png","language":"Dart","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🔐 Basic Firebase Authentication App\n\nThe **Basic Firebase Authentication App** is a Flutter-based authentication system using Firebase Authentication. This app allows users to sign up, sign in, reset passwords, and use third-party authentication providers like Google and GitHub. Additionally, it supports anonymous login.\n\n## 🚀 Features:\n- **🛡️ Firebase Authentication Error Handling**: Proper handling of authentication errors with messages for a seamless experience.\n- **🎨 Attractive UI Design**: The app features a modern and user-friendly interface for a seamless experience.\n- **📝 Sign Up**: Users can create an account by entering their email, password, and confirming their password.\n- **🔑 Sign In**: Users can log in using their registered email and password.\n- **✅ Email \u0026 Password Validation**: Ensures users enter valid email addresses and secure passwords.\n- **🔄 Forgot Password**: Users can reset their password by entering their email. A password reset link is sent to their email inbox.\n- **👻 Anonymous Sign-In**: Users can log in without an email and password.\n- **🌍 Google Sign-In**: Users can authenticate using their Google account.\n- **🐙 GitHub Sign-In**: Users can authenticate using their GitHub account.\n- **🔄 Persistent Login (Wrapper Implementation)**: Users stay logged in even after restarting the app, eliminating the need for repeated logins.\n\n## 🛠️ Technologies Used:\n- Flutter: For building the UI.\n- Firebase Authentication: A backend service for authenticating users.\n- Dart: For application logic.\n- Google Sign-In: Allows users to sign in using their Google accounts.\n- GitHub Sign-In: Enables users to log in using their GitHub credentials.\n\n## 📦 Dependencies:\nThe following dependencies are used in this project:\n\n```yaml\n  firebase_core: ^3.12.1\n  firebase_auth: ^5.5.1\n  google_sign_in: ^6.3.0\n  flutter_svg: ^2.0.17\n```\n## ⚠️ Firebase Authentication Error Codes:\nHere are the Firebase authentication error codes and their descriptions handled in the app:\n\n```dart\n// Sign In With Email And Password \ncase 'wrong-password':\n  return 'The password is invalid or the account does not have a password set.';\ncase 'invalid-email':\n  return 'The email address is not valid.';\ncase 'user-disabled':\n  return 'The user corresponding to the given email has been disabled.';\ncase 'user-not-found':\n  return 'No user corresponding to the given email was found.';\n\n// Create User With Email And Password\ncase 'email-already-in-use':\n  return 'An account already exists with the given email address.';\ncase 'operation-not-allowed':\n  return 'Email/password accounts are not enabled. Enable them in the Firebase Console.';\ncase 'weak-password':\n  return 'The password provided is not strong enough.';\n\n// Sign In With Credential\ncase 'account-exists-with-different-credential':\n  return 'An account already exists with the email address provided. Sign in using one of the returned providers.';\ncase 'invalid-credential':\n  return 'The credential is malformed or has expired.';\ncase 'invalid-verification-code':\n  return 'The verification code is not valid.';\ncase 'invalid-verification-id':\n  return 'The verification ID is not valid.';\n\n// Reauthenticate With Credential\ncase 'user-mismatch':\n  return 'The credential given does not correspond to the user.';\n\n// Sign In With Email Link\ncase 'expired-action-code':\n  return 'The OTP in the email link has expired.';\n\ndefault:\n  return 'An unknown error occurred.';\n```\n\n## 📥 Installation:\n1. Clone the repository:\n   \n```bash\nhttps://github.com/PAIshanMadusha/basic-firebase-authentication.git\n```\n2. Navigate to the project directory:\n   \n```bash\ncd basic-firebase-authentication\n```\n3. Install dependencies:\n   \n```bash\nflutter pub get\n```\n## 📥 Set up Firebase:\n   \n### ⚠️ If you are unfamiliar with Firebase connecting:\n\n- 📖I’ve written a detailed [Medium](https://medium.com/@ishanmadusha) article explaining the step-by-step process to connect Firebase to Flutter with screenshots.\n\n- 📖**Read my blog on Medium here:** [Link](https://medium.com/@ishanmadusha/how-to-connect-firebase-manually-to-a-flutter-android-project-without-errors-7a2c2a8e2741)\n\n- 📝**Also, you can view my previous project,** [Taskly Firebase App](https://github.com/PAIshanMadusha/taskly-firebase-app.git) I have written clearly on the README how to set up Firebase.\n\n### 📝 To use Firebase services in this project, follow these steps:\n\n- Create a Firebase project at [Firebase Console](https://console.firebase.google.com/).\n- Add Firebase to Your Flutter App: In Firebase Console, select either Android or iOS, depending on your target platform and, Fill the Required details.\n- Ensure this If you want to use Google Sign-In, you must generate the SHA-1 key.\n- Download the `google-services.json` file (for Android) and `GoogleService-Info.plist` (for iOS) and place them in the appropriate folders.\n\n### 🔓 Enable Authentication Providers in Firebase Console:\n\n- Navigate to Firebase Authentication by opening the Firebase Console, selecting the \"Authentication\" tab in the left sidebar Build Section, and then going to the \"Sign-in method\" tab.\n  \n### 🔓 Enable Specific Sign-In Methods:\n\n- In the Sign-in method section, enable Email/Password and Anonymous under the Native Providers section.\n- Enable Google under the Additional Providers section. If you've generated the SHA-1 key and don't want to fill in other details, simply select your email for the project and save.\n- To enable GitHub under the Additional Providers section, follow the below instructions:\n  \n### 🔓 GitHub Authentication Setup:\n\n- **Access GitHub Developer Settings**:  \n   Go to your GitHub profile, select **Settings**, scroll down to **Developer settings**, and then click on **OAuth Apps**.\n\n- **Register a New OAuth App**:  \n   Click on **New OAuth App** and fill in the required details. For the **Authorization Callback URL**, copy the URL from your Firebase console which states:  \n   _\"To complete setup, add this authorization callback URL to your GitHub app configuration\"_. Paste this URL into the form and click **Register App**.\n\n- **Obtain Credentials**:  \n   After registering, you will see the **Client ID**. Copy this and paste it into the required field in your Firebase console. Next, generate the **Client Secret**, copy it, and save it securely as required.\n   \n### ✅ All setup is complete. Now you can run the app. Make sure there are no errors:\n   ```bash\n   flutter run\n   ```\n   \n---\n\n## 📸 System Screenshots:\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/user-attachments/assets/e4fb1224-5093-45a4-885c-a6410e9ac646\" alt=\"Screenshot 1\" width=\"130\"\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\n  \u003cimg src=\"https://github.com/user-attachments/assets/df400ee9-9dcb-40d2-adc4-9fafe2c12380\" alt=\"Screenshot 2\" width=\"130\"\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\n  \u003cimg src=\"https://github.com/user-attachments/assets/435b11ef-85d2-4e96-9766-145b65677307\" alt=\"Screenshot 3\" width=\"130\"\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\n  \u003cimg src=\"https://github.com/user-attachments/assets/7257d5da-1874-4ef7-a4bf-7cf7d6b0db14\" alt=\"Screenshot 3\" width=\"130\"\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\n  \u003cimg src=\"https://github.com/user-attachments/assets/dba7fc8d-c3f2-45b4-83ff-9f451de2c602\" alt=\"Screenshot 3\" width=\"130\"\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\n\u003c/p\u003e\n\n---\n\n### 👨‍💻 Created by: \n**Ishan Madhusha**  \nGitHub: [PAIshanMadusha](https://github.com/PAIshanMadusha)\n\nFeel free to explore my work and get in touch if you'd like to collaborate! 🚀\n\n---\n\n## 📝 License  \nThis project is open-source and available under the MIT License.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpaishanmadusha%2Fbasic-firebase-authentication","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpaishanmadusha%2Fbasic-firebase-authentication","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpaishanmadusha%2Fbasic-firebase-authentication/lists"}