从团队名称查询团队id,然后在firestore中查询所有具有该团队id的用户的最佳方法?



我有一个用户集合,其中每个文档ID是uid,文档有2个字段:user_nameteam_id。我有另一个团队集合,其中每个文档ID是随机生成的,文档有2个字段:team_nameteam_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存在就可以工作。

最新更新