SoFunction
Updated on 2025-04-08

Sample code for building a live chat application using Vue and Firebase

introduction

With the continuous advancement of Internet communication technology, real-time chat applications have now become an indispensable part of our daily lives. Whether it is a social media platform, work communication tools or customer support systems, real-time chat is constantly being demanded. Today, we will cover how to use Firebase to build a simple and powerful live chat application. Through this tutorial, I hope you can master the basic skills of using Vue's Setup syntax sugar combined with Firebase for real-time data updates.

1. Project preparation

1. Create a Vue project

First, make sure you have installed the Vue CLI on your computer. If not installed, you can use the following command to install:

npm install -g @vue/cli

Next, use the Vue CLI to create a new Vue project:

vue create vue-firebase-chat

Select the "Default" configuration in the interactive options and go to the project directory:

cd vue-firebase-chat

2. Install Firebase

In the project, install the Firebase library:

npm install firebase

3. Configure Firebase

Log in to the Firebase console and create a new project. Next, select "Firestore Database", click "Create Database", select "Start Use", and allow us to test.

Then, you need to copy the code configured by Firebase. In the Firebase console, select Project Settings, find the "Your Apps" section, add a new web app and save the configuration.

In your project, create a new oneFile and add the following configuration:

import { initializeApp } from 'firebase/app';
import { getFirestore } from 'firebase/firestore';

const firebaseConfig = {
  apiKey: "YOUR_API_KEY",
  authDomain: "YOUR_AUTH_DOMAIN",
  projectId: "YOUR_PROJECT_ID",
  storageBucket: "YOUR_STORAGE_BUCKET",
  messagingSenderId: "YOUR_MESSAGING_SENDER_ID",
  appId: "YOUR_APP_ID"
};

const app = initializeApp(firebaseConfig);
const db = getFirestore(app);

export { db };

Please replaceYOUR_API_KEYetc fields for your own Firebase configuration.

2. Create a live chat application

1. Create the infrastructure

existsrcCreate a new foldercomponentsfolder and create it in itComponents. Then insrc/This component is introduced in.

<!-- src/ -->
<template>
  <div >
    <h1>Live chat application</h1>
    <ChatApp />
  </div>
</template>

<script>
import ChatApp from './components/';

export default {
  name: 'App',
  components: {
    ChatApp,
  },
};
</script>

2. Set up chat components

exist, set the chat interface, including the message input box, message list and send button. We will use Vue 3's Setup syntax sugar.

<!-- src/components/ -->
<template>
  <div>
    <div class="messages">
      <div v-for="message in messages" :key="">
        <strong>{{  }}:</strong> {{  }}
      </div>
    </div>
    <input v-model="newMessage" @="sendMessage" placeholder="Input message..." />
    <button @click="sendMessage">send</button>
  </div>
</template>

<script>
import { ref, onMounted } from 'vue';
import { db } from '../firebase';
import { collection, addDoc, onSnapshot } from 'firebase/firestore';

export default {
  setup() {
    const messages = ref([]);
    const newMessage = ref('');
    const messagesRef = collection(db, 'messages');

    const sendMessage = async () => {
      if (() !== '') {
        await addDoc(messagesRef, {
          sender: 'user', // This can be changed to real user data          text: ,
          timestamp: new Date()
        });
         = ''; // Clear the input box      }
    };

    const loadMessages = () => {
      onSnapshot(messagesRef, (snapshot) => {
         = (doc => ({
          id: ,
          ...()
        }));
      });
    };

    onMounted(() => {
      loadMessages();
    });

    return { messages, newMessage, sendMessage };
  }
};
</script>

<style scoped>
.messages {
  border: 1px solid #ccc;
  padding: 10px;
  height: 300px;
  overflow-y: scroll;
}
input {
  width: 80%;
  padding: 10px;
}
button {
  padding: 10px;
}
</style>

III. Run the project

In the terminal, run the following command to start the Vue development server.

npm run serve

Open a browser and accesshttp://localhost:8080/, you should be able to see a simple chat interface. Enter a message in the input box and press Enter or click the Send button. The message will be added to the Firestore and will be automatically updated to the page.

IV. Further expansion

Now that we have built a basic live chat application, you can consider expanding more functions, such as user authentication, chat in different rooms, message persistence, etc. These features can all be implemented through other Firebase products such as Firebase Authentication and Realtime Database.

Summarize

Through this tutorial, you should have a certain understanding of how to build a basic live chat application with Firebase. We not only learned how to use Vue 3's Setup syntax sugar tissue code, but also how to achieve real-time synchronization of data through Firebase Firestore. This is a very practical technology stack combination, and I hope you can flexibly apply it in subsequent projects.

You can continue to explore other Firebase features, including deployment, storage, and functions, to further enhance the capabilities and user experience of this application. Live chat applications are not limited to individual projects, but can also be part of enterprise solutions to help team members maintain effective communication and enhance collaboration.

The above is the detailed content of the sample code for building a live chat application using Vue and Firebase. For more information about Vue Firebase live chat, please follow my other related articles!