Как отобразить аутентифицированного пользователя, который отправил сообщение на форум или группу с помощью firebase - PullRequest
0 голосов
/ 03 мая 2020

Я аутентифицировал пользователей, которые хранятся в базе данных с узлом "users". я реализовал vuex, поэтому у меня есть пользовательский узел, сохраненный в allUsers в vuex.

, это выглядит так:

3ci2V6JQWIREZsuJ2u4hkaRgml02
      department: 
        "Information Technology"
      email: 
        "jumong@gmail.com"
      name: 
        "Jumong"
      select: 
       "Student"

Я создал компонент с именем forum (см. это как группа WhatsApp), здесь чаты сохраняются в базе данных.

Компонент форума

<template>
  <q-page class="q-pa-md" id="forum">
    <div class="text-center">
      <q-badge class="text-subtitle1 text-white q-mt-none q-mb-sm">
        Where Student Interact!
      </q-badge>
    </div>
    <div class="row justify-center">
      <div style="width: 100%; max-width: 400px">
        <q-chat-message
          v-chat-scroll="{ always: false, smooth: true }"
          v-for="chat in messages"
          :key="chat.id"
          ***:name="something.something"***
          :text="[chat.message]"
          :stamp="chat.timestamp"
        />
      </div>
    </div>
    <CreateMessage />
  </q-page>
</template>

<script>
import { mapState } from "vuex";
import CreateMessage from "../components/CreateMessage";
import { db } from "../boot/firebase";
import moment from "moment";

export default {
  name: "Forum",
  props: ["name"],
  data: () => ({
    messages: []
  }),
  components: {
    CreateMessage
  },
  created() {
    let ref = db.collection("chats").orderBy("timestamp");

    ref.onSnapshot(snapshot => {
      snapshot.docChanges().forEach(change => {
        if (change.type == "added") {
          let doc = change.doc;
          this.messages.push({
            id: doc.id,
            name: this.userDetails.name,
            message: doc.data().message,
          });
        }
      });
    });
  },
  computed: {
    ...mapState("store", ["allUsers"])
  }
};
</script>

Проблема в том, что я хочу отобразить любого пользователя, отправляющего сообщение. на всеобщее обозрение должен появиться пользователь, отправляющий сообщение.

...