Я аутентифицировал пользователей, которые хранятся в базе данных с узлом "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>
Проблема в том, что я хочу отобразить любого пользователя, отправляющего сообщение. на всеобщее обозрение должен появиться пользователь, отправляющий сообщение.