首页 > 解决方案 > 允许未注册用户查询 Firestore 以检查电子邮件是否已存在

问题描述

现在,在我的 Firestore 规则中,只有注册用户才能读/写我的项目。但是,我还想在我的注册过程中验证电子邮件是否已经存在,这意味着匿名用户也可以访问我的“用户”数据。

从安全的角度来看,我不确定这是如何合规的。我应该创建类似“电子邮件”集合并在此处复制所有电子邮件地址并允许匿名用户查询吗?

标签: google-cloud-firestorefirebase-security

解决方案


是的,这确实是典型的方法。将您希望匿名访问的数据复制到一个单独的集合中,并在那里授予更广泛的访问限制。

在该电子邮件地址集合的规则中,您通常会使用允许阅读每个特定文档但不允许列出所有文档的细粒度规则。就像是:

match /emails/{email} {
  // Applies to single document read requests
  allow get: if <condition>;

  // Applies to queries and collection read requests
  allow list: if false;
}

这意味着一旦用户输入了特定的电子邮件地址,您就可以检查该电子邮件地址是否存在文档。但他们不能只从集合中获取所有文档来抓取您的用户群。


推荐阅读