Firestore检查用户名是否存在,是不查询整个数据库的最佳模型?

时间:2019-01-08 01:38:36

标签: firebase google-cloud-firestore

您好,我正在开发Android应用程序,并使用Firebase的Firestore。我担心的是在用户注册我的应用程序时为其创建用户名。我知道我必须检查用户名是否存在于数据库中,但是如果您有1百万个用户或5个用户,该怎么办?我认为查询整个数据库的结果不会很快。查询整个数据库是唯一的方法吗?或创建一个内部包含24个文档的名为用户名的集合,例如第一个文档包含以a开头的用户名集合,然后第二个文档包含以b开头的用户名集合,依此类推。需要你的帮助。谢谢。

1 个答案:

答案 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中,您可以使用查询来检索单个,   特定文档或检索集合中的所有文档   与您的查询参数匹配。您的查询可以包括多个,   链接过滤器,并将过滤和排序结合在一起。他们也是   默认情况下建立索引,因此查询性能与大小成正比   而不是数据集

因此答案是您应该查询您已经存在的文档集合,并且为文档的子集创建较小的集合以提高查询性能。