我计划将Algolia搜索添加到我正在开发的React应用程序中。数据存储在Cloud Firestore中。我已经使用Algolia的扩展设置了Algolia和Firestore之间的同步,并且我已经测试了即时搜索,它工作得很好。
然而,我突然想到,当从Algolia搜索返回数据时,我在Firestore中为不同用户角色精心设置的安全规则将被完全忽略。
有人建议我遵循these instructions来实现用户对数据的限制。但是现在,我在让Firestore安全规则按照我想要的方式设置时所做的所有工作都需要重复,而且似乎需要付出很大的努力。这也意味着,每当我更改安全规则时,我都必须更改Algolia限制。只是为了搜索。
有没有人找到了一种更简单的方法来实现类似于搜索的Firestore查询,同时维护他们的安全规则?
发布于 2021-08-12 14:07:54
由于您使用可从公共internet调用的API将信息存储在两个位置,因此需要分别保护对这两个位置的信息的访问。
我能想到的第一个替代方案是对这两个地方的数据使用一个公共访问点(比如使用Cloud Functions),然后禁用允许从客户端直接访问的API。
正如OP在评论中指出的那样,有一种相对方便的方法可以在Firebase和Algolia之间共享用户身份,这在Algolia集成的adding security一节中有记录。
https://stackoverflow.com/questions/68754942
复制相似问题