首页 > 解决方案 > Algolia + Firestore:安全规则

问题描述

我打算将 Algolia 搜索添加到我正在开发的 React 应用程序中。数据存储在 Cloud Firestore 中。我已经使用 Algolia 的扩展程序设置了 Algolia 和 Firestore 之间的同步,并且我已经测试了即时搜索,效果很好。

但是,我突然想到,当从 Algolia Search 返回数据时,我在 Firestore 中为不同用户角色精心设置的安全规则将被完全忽略。

建议我按照这些说明对数据实施用户限制。但是现在我所有的工作都需要按照我想要的方式来设置我的 Firestore 安全规则,这似乎需要付出巨大的努力。这也意味着每当我更改安全规则时,我都必须更改 Algolia 限制。只是为了搜索。

有没有人找到一种更简单的方法来实现类似搜索的查询 Firestore,同时保持他们的安全规则?

标签: firebasegoogle-cloud-firestorealgolia

解决方案


由于您使用可以从公共 Internet 调用的 API 将信息存储在两个地方,因此您需要分别保护对这两个地方的信息的访问。

我能想到的第一个替代方案是对两个地方的数据使用公共访问点(例如使用 Cloud Functions),然后禁用允许从客户端直接访问的 API。

正如 OP 在评论中指出的那样,有一种相对方便的方法可以在 Firebase 和 Algolia 之间共享用户身份,该方法记录在“为 Algolia 集成添加安全性”部分中。


推荐阅读