【问题标题】:How do I authenticate Firebase functions/admin requests to Firestore如何向 Firestore 验证 Firebase 功能/管理员请求
【发布时间】:2020-11-06 19:28:00
【问题描述】:

我能够在前端完成生成 Firebase 身份验证令牌、将其发送到 Firebase Cloud Function 并使用 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 吗?这可能吗?

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

谢谢,

【问题讨论】:

  • 嗨@CaineNielsen,如果您认为以下答案有帮助,请考虑投票并将其标记为已接受。否则,请随时就您的原始问题提出任何其他问题。

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


【解决方案1】:

你想要做的实际上是不可能的。当您使用服务器 SDK(包括 Firebase Admin SDK)之一从后端代码查询 Firestore 时,查询将始终绕过所有安全规则。没有办法改变这种行为。规则仅适用于来自网络和移动客户端的直接访问。

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

【讨论】:

    猜你喜欢
    • 2018-06-15
    • 2018-11-15
    • 2018-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-13
    • 2015-09-08
    • 2021-11-09
    相关资源
    最近更新 更多