您好,我正在开发Android应用程序,并使用Firebase的Firestore。我担心的是在用户注册我的应用程序时为其创建用户名。我知道我必须检查用户名是否存在于数据库中,但是如果您有1百万个用户或5个用户,该怎么办?我认为查询整个数据库的结果不会很快。查询整个数据库是唯一的方法吗?或创建一个内部包含24个文档的名为用户名的集合,例如第一个文档包含以a开头的用户名集合,然后第二个文档包含以b开头的用户名集合,依此类推。需要你的帮助。谢谢。
答案 0 :(得分:1)
实际上key characteristics of Firestore之一就是:the performance of a query is proportional to the size of your result set, not your data set。
因此,在5个,24个或100万个文档的集合中查找1个文档时,查询性能将完全相同。
在Cloud Firestore中,您可以使用查询来检索单个, 特定文档或检索集合中的所有文档 与您的查询参数匹配。您的查询可以包括多个, 链接过滤器,并将过滤和排序结合在一起。他们也是 默认情况下建立索引,因此查询性能与大小成正比 而不是数据集。
因此答案是您应该查询您已经存在的文档集合,并且不为文档的子集创建较小的集合以提高查询性能。