SimpleContacts is an android app that allows any user to sign in (via Google sign-in) and create, read, update, and delete contact information to a personalized contacts list stored in a Google Firebase Cloud Firestore.
The following main functionality is implemented:
- User can sign in to Firebase using Google sign-in
- User can view a list of contacts stored in Firebase
- User can add a new contact
- User is displayed* the Name, Phone Number(s), e-mail Address, Address, and Gender for each contact
- User can update an existing contact
- User can delete a new contact
- User can scroll through the list of contacts if not all contacts are able to be displayed on-screen simultaneously
The following additional features are implemented:
- First time users are taken directly into the app and may start creating contacts right away without the need for registration
- Multiple users are supported, each with their own unique list of contacts
- Empty contact details are not shown in the MainActivity
- The delete button is not shown for a new contact
- User is prompted to confirm before deleting a contact, or discarding changes
- UI & Visibility enhancements
Here's a walkthrough of the login process:
Here's a walkthrough of implemented user stories:
GIF created with LiceCap.
Note
- Google Services API above 4.3.5 does not work for whatever reason, it will not detect the Firebase config file. Stick to 4.3.5 until a solution is discovered. (https://stackoverflow.com/questions/37810552/cannot-resolve-symbol-default-web-client-id-in-firebases-android-codelab)
- You will need your own Firebase config file (google-services.json) to implement an independent version of this app. (https://firebase.google.com/docs/android/setup#add-config-file)
- Firebase UI for Android - Open-source UI Bindings for Firebase
Copyright [2022] [https://github.com/oneparchy]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.