我正在使用vue 和 firebase建立一個發布網站,當用戶創建帖子時,他們的用戶名將顯示在帖子上。
例如:
由...制作 user1
這一切都很好。現在我正在處理一個用戶頁面,您可以在其中看到用戶的姓名和電子郵件。
問題是我沒有顯示電子郵件和姓名。
這是我的代碼:
一塊 PostDetails 頁面
<router-link :to="{ name: 'UserDetails', params: { userId: playlist.userId } }" class="username">
Created by {{ playlist.userName }}
</router-link>
用戶詳情頁面:
<template>
<div>{{ user.displayName }}</div>
</template>
<script>
import getDocument from "@/composables/getDocument";
export default {
props: ["userId"],
setup(props) {
const { error, document } = getDocument("users", props.userId);
const userName = document.value.displayName
return {
error,
userName,
};
},
};
</script>
<style></style>
這是網站本身:

用戶

概括
我想要做的是,每當您在帖子上時,您都可以單擊用戶名(我已經這樣做了),然后在 userDetails 頁面上,您可以從您所在的帖子中看到用戶和電子郵件。
uj5u.com熱心網友回復:
NoSQL 世界中的一種經典方法是對資料進行非規范化,這樣您只需一個查詢即可獲得特定應用程式螢屏的必要資料。換句話說,您不會像在 SQL 世界中那樣使用連接來“鏈接”兩條記錄,而是將所有資料放入要顯示的記錄中。
更具體地說,這意味著在每個播放串列檔案中,您將復制其作者的資料(userName正如您已經做過的那樣,但也有email)。
這種方法的一個副作用是您需要保持值同步(即用戶檔案中的值和播放串列檔案中的值)。如果修改了用戶檔案,則可以通過觸發云功能來完成此同步。
同樣,您不應該害怕復制資料和非規范化您的資料模型。這是一篇關于 NoSQL 資料建模方法的“著名”文章:
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/419634.html
標籤:
