阅读随机用户firestore



每当用户使用Firebase Auth在我的应用程序上注册时,我都会在Firestore的users集合中创建一个文档,该文档存储诸如pseudo、userType、gender。。。

为此,文档id与Firebase Auth(来自用户UserRecord对象(自动提供的uid完全相同

现在,我的应用程序需要从Firestore中的users集合中随机获取一个用户。

我读过Firestore:如何在集合中获得随机文档,但这篇文章建议我自己创建ID。该应用程序已经使用FirebaseAuth生成的ID构建,那么解决方案是什么?

firestore中的一种常见做法是创建一个--统计--";集合中的文档(--Stats--是文档id(。此文档可以包含有关集合的信息(文档数量、上次更新、集合权限等(

在您的情况下,您可以使用云功能/触发器来记录用户集合中的用户总数,并将新用户的id添加到"中;userIds";大堆您可以将这两个字段都保留在users集合的--Stats-document中。这样,当您想要获得一个随机用户时,可以随机生成一个介于0和文档计数之间的数字,然后将其用作userIds数组的索引。我可能看起来像这样:

var usersCollectionRef= db.collection("users");
usersCollectionRef.doc("--Stats--").get().then((doc) => {
let numberOfUsers = doc.data().numberOfUsers; 
let userIdArray = doc.data().userIds; 
let randomNumber = Math.floor(Math.random() * (numberOfUsers + 1));
return usersCollectionRef.doc(userIdArray[randomNumber]).get();
}).then((doc) => {
...do something with the user's document
})

最新更新