如何验证对Firestore的Firebase功能/管理员请求

时间:2020-07-17 02:51:54

标签: firebase google-cloud-firestore firebase-authentication google-cloud-functions

我能够完成在前端生成Firebase身份验证令牌,将其发送到Firebase云功能以及使用auth.verifyIdToken对其进行解码并提取用户ID的过程。

我想使用Cloud Firestore,但是我不知道从Firebase Functions向Cloud Firestore发出请求时如何使用用户令牌/ ID。我的目标是在创建Cloud Firestore安全规则时使这些变量可用。

a)我需要在Firestore请求中传递这些变量吗?

示例:

postsRef.where({uid //somehow?}, 'published', '==', true).get();

b)我应该使用auth.setCustomUserClaims?来使用Admin SDK时唯一的选择吗?

c)ID和解码令牌之间的用法有何不同?我应该将两者都传递给Cloud Firestore吗?那有可能吗?

让我知道您的想法,任何信息都对您有帮助。

谢谢

1 个答案:

答案 0 :(得分:0)

您实际上无法做到。使用服务器SDK(包括Firebase Admin SDK)之一从后端代码查询Firestore时,查询将始终绕过所有安全规则。无法更改此行为。规则仅适用于来自Web和移动客户端的直接访问。

您要做的是在后端代码中复制规则的工作,以确保在查询之前所有条件均正确。

相关问题