从Firebase Firestore获取随机文档

10 浏览
0 Comments

从Firebase Firestore获取随机文档

如何在不读取整个集合的情况下从Cloud Firestore集合中获取一个随机文档?

假设有一个包含数以万计文档(用户)的集合,我需要选择一个随机的文档(获胜者)。

0
0 Comments

问题的原因是需要从Firebase Firestore中随机获取一个文档。然而,由于Firebase Firestore的1 MiB限制,如果将所有用户的UID存储在一个文档中的数组字段中,可能会导致无法容纳所有UID。解决方法是将UID分别存储在两个或三个文档中,并读取这些文档,然后随机选择一个UID。这样,可以避免读取成千上万个文档,只需读取少数几个文档。

此外,还需要经常更新这些数组,即当有新用户加入应用时,将其UID添加到数组中,当有用户离开应用时,从数组中删除其UID。

这里提到了在NoSQL数据库中常见的一种实践,即复制数据(UIDs)。这种做法可以在一定程度上解决从Firebase Firestore中随机获取文档的问题。

总之,解决从Firebase Firestore中随机获取文档的方法是将UID分别存储在多个文档中的数组字段中,并经常更新这些数组。这样可以避免读取大量的文档,提高读取效率。

0