
Create a mobile app project with framework7 create --ui, configure cordova for iOS and Android, and set the bundle id to whatchat. Run server to test in browser and Android.
Create a sign-in page with email and password fields, a sign-in button, and forgot password flow powered by Firebase, plus linking to sign-up and navigation setup.
Create a sign up page to let users create accounts with name, email, and profile picture, integrated with firebase authentication and database for the chat app.
Connect the Vue.js chat app to firebase by creating a firebase project, copying the config, installing firebase via npm, importing firebase, and verifying a successful connection in the app.
implement a Vuex store in the app by creating a store folder, installing dependencies with npm, importing Vuex, and configuring a sample mutation to manage messages.
Enable email and password authentication in firebase, implement sign up function, create user records in realtime database, and update profile with display name and photoURL, including error handling.
Learn to implement a toast Firebase message for user sign up, showing real-time alerts from the store, handling errors like email already in use and badly formatted emails.
Create and export a mixin to share functions, move properties and methods into the mixin, and import it into pages to reuse behavior across components.
Add a custom profile photo feature by integrating a hidden file input, handling file changes, and referencing the image file to let users browse and set their profile picture.
Implement a read file action to load user profile pictures, using file modules and state management, with size checks for uploading avatars in the Vue JS and Firebase chat app.
Sign up with a custom profile picture by uploading the user photo to Firebase storage, handling defaults, and updating the Vuex state and database through upload actions.
Learn to automatically navigate to the sign-in page after sign-up by enabling a site-up state and triggering a redirect in the Vue JS and Firebase chat app.
Implement an email verification action with Firebase during sign up, dispatch a mutation to display an alert after sending the verification email.
Implement sign in by passing email and password as a payload, dispatching login actions, updating authentication state, handling errors with alerts, and routing to the home page after sign-in.
Use a Firebase auth observer to check if the user is signed in before rendering the app, and show the home page when signed in.
Add a sign out button on the left panel and implement a sign out function, then close the left panel after signing out to keep the interface tidy.
Enforce email verification in a Vue.js and Firebase chat app by checking the user's email status, updating login flow, and routing to the home page on success.
Learn to implement a 20-second countdown to restrict sending verification emails, disabling resend until the time left reaches zero and triggering a new email when it ends.
Learn to add dynamic button style that signals a disabled state as time left changes, using a color method that switches between default and active colors when time runs out.
Learn to conditionally display a resend email link in a Vue.js and Firebase chat app, showing it only when the user's email isn't verified within a time window.
Learn to implement a forget password feature using Firebase manage users, sending a reset email, handling success and error alerts, and guiding users to set a new password.
Learn to add a profile picture and display name to the left panel by managing state, updating mutations, and committing changes.
Create an edit profile page to let users update their information, reusing the profile page design and navigating via tabs without a back link.
Modify the edit profile page to replace default avatars with a user selected profile image, adjust display name handling, and implement an update profile mutation to save changes.
Implement the update profile function to modify the current user's display name and profile picture by deleting the old Firebase photo, uploading the new one, and updating the user record.
We'll create one notification icon for notifying there are incoming requests. The other icon is to go to another page to add some new friends
In this part we are going to create two pages, the requests page for listing out who send you a friend request. The contacts pages is to show all the available users.
For getting all the users, we will use Vuex , which go to the store.js to add an action to get all users
Beautify the contacts page by turning the user list into a view with profile pictures and swipe actions for easier contact management in the Vue JS and Firebase chat app.
Create a send request action by wiring Firebase modules, building a request payload with recipient details, and exporting chat functionality across the modules.
Develop and wire the send request function by creating a class, identifying sender and recipient ids, and importing Firebase to enable chat app messaging.
Learn how to install lodash and enable async/await in a Vue.js and Firebase chat app, including dispatching actions to fetch users, awaiting data, and handling requests.
Demonstrate the get my requests action in a Vue and Firebase chat app by matching user IDs and updating friend requests.
Beautify the requests page by turning the date list into a styled contest-like list, replace friend data with family crest, rename to auto request, and add confirm and remove actions.
Create a delete action in the class actions to issue a delete request, locate the firebase key, and perform the delete, returning the promise.
Implement a confirm request action that updates both users' IDs when a request is confirmed. Reuse the send request flow and dispatch a delete action after confirmation, with error handling.
Implement a get all friends action to fetch and list a user's friends, update the UI with dynamic friend counts, and handle friend request visibility.
Beautify the home page by removing unnecessary elements, copying the class page style, adding bottom styling, and displaying friends more clearly.
Select a friend to open a conversation, then pass the friend information to the chat component for display.
Detail the chat page by integrating the message component, wiring navigation between chat and home, and controlling the tab bar and message bar visibility with state, mutations, and dispatch.
Create a send message action by creating a database reference, building a payload with message and timestamp, and pushing the message to both self and friends for symmetric delivery.
Create a send message function that updates both sender and friend by dispatching actions with the message and optional image in the Vue JS and Firebase chat app.
Retrieve chat messages from Firebase using current user and friend ids, format each message as sent or received with sender name and avatar, and store Moment-formatted timestamps in chat state.
Display messages by fetching all chat messages in a chat interface, showing sender name and avatar, and enable typing and sending new messages to a friend.
Group messages by date to display all messages from the same day together, then organize each day's messages by time using an updated loop and index.
Delete unused dummy data and irrelevant messages to focus the chat data on real conversations, while preserving a sample image upload for demonstration.
Add a browse photo feature by wiring a photo icon to a file picker, enabling multiple image selections in chat messages. Display the selected photos in the message thread.
Learn to read image files, create a file message action, and dispatch it on file selection, then upload the image to Firebase and display it in your Vue.js chat app.
Create a chat images upload action that handles attachments, assigns a unique id via base64, stores images in chat/images, uses putString with image/png, and returns the promise.
Learn how to send image messages by checking for attachments, uploading images to obtain urls, and passing those urls in chat messages while handling cases with no attachments.
Create a get user key action in a vue js and firebase chat app to fetch the user key and show the latest message for you and your friend.
Create a latest message action in a Vue.js and Firebase chat app by sending a text message with your id, friend id, friend key, and self key via Firebase payload.
Modify the send message action by retrieving the user key, passing user info to the latest message, and updating the home page via dispatch with await and try-catch.
Update user details to display each friend's latest message on the friend list in Vue JS and Firebase, by querying by friend ID, handling message payloads, and supporting image uploads.
Create a chat groups page by setting up a groups list, configuring the check groups feature, and linking the track groups tab to display all existing groups.
Create a group page in a Vue JS and Firebase chat app, link it, and allow users to name themselves and add photos to form a group.
Beautify the create new group page by integrating a Firebase group icon, applying top-site styles, and adding a group name input with a create button to launch the new group.
Learn to create a group chat module in a Vue.js and Firebase app, wiring chat modules, store state, and a default image for group chats.
Initialize the group image for every new group by using mutations to set and duplicate the initial image, updating the store for each new page.
Modify the readFile action to a dynamic approach that supports both reading an image and setting the image url, enabling browse photo and updates to profile and signup pages.
Add a create group method that builds a group object with name and picture, handles default or uploaded photos, uploads files, and dispatches the create group action.
Implement a dynamic upload file action that opens the photo browser, reads the selected image, and updates the profile or signup image URL across pages using a module.
Create group action builds group information (name and profile image) in a new Firebase groups reference, then dispatches a create group action using the current user id.
Implement a get all groups action to fetch and store chat groups from Firebase using user ID, and commit a mutation to update the state with name and picture data.
Display and manage chat groups by creating a groups view, dispatching get my groups, and applying the home page layout and styles to show two groups.
Create a chatgroup page to enter a selected group and chat with members. Duplicate track group components, add a checkbox to choose a group, and navigate to the group page.
Edit the chat group page, pass the group object to new pages, and manage the tab bar visibility to ensure smooth navigation and display of check ups.
Add options to chat group by placing an options icon in the navigation bar, wiring the essence sheet options for group info, members, and delete group actions.
Create navigable option pages and connect them to a group flow by duplicating pages, setting routes under the members path, and wiring functions that pass the group name.
Create and fetch group images for chat groups by wiring actions with ids and names, dispatching to retrieve photos, handling errors, and verifying with a display of image length.
Add new members to a chat group by dispatching actions, pushing member information such as email and group image, and handling state with try-catch as you expand the group.
Display friends as potential members, fetch member data, and add new members to a group using Vue JS and Firebase for a cross-platform chat app.
Create and manage a group members state, fetch member data from firebase by navigating groups, id, and members, and commit mutations to populate the group members list for display.
Refresh and update group member list by evaluating each potential member against current members, removing those who are already members, and converting remaining potential members into members in the UI.
Explore displaying group members in a Vue JS and Firebase chat app, reusing templates, retrieving the group name and members, and rendering them on the group infos page.
Learn to remove a member from a group in a Vue and Firebase chat app by locating the member key, moving the member with a payload, then updating group.
Show number of members explains implementing a dynamic member count in the chat app, with pluralization rules, header display, and conditional rendering for no members yet and removing debugging code.
Define action groups for chat roles in a Vue.js and Firebase app, giving owners rights to add or delete members, delete groups, while members can view or leave groups.
Learn how to implement the leave group action by finding the owner, moving the members, and removing the group reference to enable a clean exit.
Create a payload with the name property for the leave group action, dispatch it, and verify the user is removed from members and owners.
Fetch group members data and display it on the group involved page using the owner id, while non-owners cannot view the member list.
Build a group info page by reusing the group members logic, pass the group name to fetch members, remove delete rights, and apply styles.
Copy chat page elements to a group chat page, reuse the photo icon and inputs, and remove unnecessary data while guarding against empty arrays to avoid errors.
Send group messages by identifying owners and members, then push the message to the sender, to owners, and to other members using a single message action.
Implement the send group message function in a Vue JS and Firebase chat app, build the payload with the group name, and dispatch the action to update group message board.
Build a chat feature by sending image messages with Vue JS and Firebase, including uploading attachments, dispatching actions, and posting to the chat group.
Create get group messages by setting up state, actions, and mutations; fetch from Firebase, format timestamps with Moment, and determine sent or received messages for the current user.
Display group messages in a Vue JS and Firebase chat app by fetching group messages and looping through them, with left alignment for others and right alignment for you.
Add and update the latest group message across all members, handling text versus image, and display the latest message in each group's chat list.
Display the latest message at the top of the group chat, updating to show the newest message as users type.
Master the VueJS and Firebase together to build an amazing iOS and Android chat application. By learning from this course, you are not only can build chat application, but also can apply these knowledge to build other incredible applications.
If you’re looking to get started building a real-world mobile chat app, then this course is best for you. In this course, I will teach you how to use Vue JS and Framework7 as frontend, Firebase as backend to build the chat app from scratch.
VueJ S is a very simple framework, which combine with the best of Angular and React
Framework7 is an open source framework7, which let you develop mobile, desktop or web app with a native look and feel
Firebase is a real time database, it allows you to create authentication easily, user can login with email, google, Facebook and twitter account.
The course will cover
Firebase user Authentication
Forget the password
Email Verification
Firebase real time database
One on one chat
Group chat
Who this course is for:
Anyone who wants to learn how to create native view mobile app with Vue JS & Firebase
Anyone who wants to learn Vue JS and Firebase
Anyone who wants to learn about Authentication in Vue JS apps
Anyone who wants to learn how to use Firebase in their real time applications