我有一个用户集合,其中每个文档ID是uid,文档有2个字段:user_name
和team_id
。我有另一个团队集合,其中每个文档ID是随机生成的,文档有2个字段:team_name
和team_id
(随机生成的ID)。
我正在使用react router和useParams
来为组件命名团队名称。我想查询团队集合,看看哪个文档有team_name
等于传递的团队名称。然后,我想从具有该团队名称的文档中获取team_id
,并使用它来查询用户具有该team_id
的用户集合。
我知道如果我能得到team_id,那么我可以这样做:
const queryRef = query(
collection(db, 'users'),
where('team_id', '==', team.id)
);
const [users] = useCollectionOnce(queryRef);
,然后在return语句中做如下操作:
{videos.docs.map((user) => {
const data = user.data();
const userName = data.user_name;
return (
// display userNames in some way
);
})}
我想知道从team_name值中获取team_id值的最佳方法,或者是否有其他更好的方法来获取用户列表。
您当前所做的是处理这种情况的非常直接的方法。首先通过团队名称获取团队ID,然后使用该团队ID查询用户。
你可以删除第一个查询的一种方法是在URL中使用team ID本身,这样你就可以直接查询用户,但这样URL就不太友好了。此外,你可以尝试像StackOverflow那样格式化你的URL。它有问题ID(这是必需的),但也有问题的标题,以便用户可以获得URL的一些上下文。然而,标题不是必需的,URL只要问题ID存在就可以工作。