如何保护电子邮件地址不被读取,但使用Firestore使其可在前端搜索?



基本上,我正在尝试找出一种方法来获取用户的电子邮件地址,而无需在我的应用程序的某个网页上进行任何身份验证。也就是说,我的Firebase规则不允许阅读用户的文档以避免泄漏等。

总而言之:如何防止人们阅读用户的文档,但仍然使他们可搜索以获取一些数据(即电子邮件地址(?

谢谢!

为清晰起见进行编辑:

这是我对用户表的规则:

match /users/{userId} {
allow read: if belongsTo(userId);
allow create: if belongsTo(userId);
allow update: if belongsTo(userId);
allow delete: if false;
}

现在,在我网站的某个页面上,我需要获取某个用户的信息(这是动态的(:有时我需要获取用户鲍勃的信息,有时可能需要用户Doe

但是,我现在的规则阻止任何人获取任何用户的文档信息,如果您未经身份验证并且文档不属于您。

那么基本上绕过我的代码中allow read: if belongsTo(userId);的这条规则的最佳方法是什么。我在想也许HTTP请求可以帮助我实现云功能,但我不确定如何实现。

我希望这使它更加清楚。再次感谢。

听起来您尝试执行的操作无法使用安全规则。 如果您的规则不允许对文档进行读取访问,则任何人都不可能从中获取数据。 如果某人只是知道文档中的某些数据,则不可能编写允许他们阅读文档的规则。

您可能必须创建一个 API(如果需要,请使用云函数(,该 API 将电子邮件地址作为参数,执行查询,并将任何结果发送回客户端。

最新更新