簡體   English   中英

如何使用angularfire從另一個集合中獲取firestore中的用戶名

[英]how to get a username in firestore from another collection with angularfire

如何使用angularfire從另一個集合中獲取firestore中的用戶名

我有 2 個 collections

-users
--username
--uid

-post
--title
--user_id

顯示所有帖子時如何獲取用戶名?

我只能返回 user_id

您沒有共享用於顯示所有帖子的現有代碼,因此很難提供要添加的確切代碼...

但是,基本上,您有兩種選擇:

在 users 集合中查找用戶名

在顯示post之前,您對數據庫進行額外查詢以獲取username的值,例如afs.collection('users', ref => ref.where('uid', '==', 'user_id)) (見https://github.com/angular/angularfire/blob/master/docs/firestore/querying-collections.md

這意味着您顯示的每篇文章都需要額外閱讀

保存 post 文檔時將用戶名與用戶 ID 一起保存

這是 NoSQL 世界中的經典方法:您以易於構建和執行查詢的方式對數據進行非規范化。

更具體地說,這意味着您的帖子集合將類似於:

-post
--title
--user_id
--username

但是,只有當您在編寫post文檔時在前端具有username的值時,這才有可能。 一種經典方法是通過currentuser從當前用戶currentuser.displayname獲取它。

這種方法的一個副作用是您需要保持值同步(即user文檔中的值和post文檔中值)。 但是,在您的具體情況下,我們可能會假設用戶名不會經常更改......


您不應該害怕重復數據和非規范化您的數據 model。 這是關於 NoSQL 數據建模方法的“著名”帖子: https://highlyscalable.wordpress.com/nosql-data

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM