作为经过身份验证的用户的 Firebase 函数 HTTP 请求
Firebase Function HTTP Request as Authenticated User
对于我的 Cloud Function,我希望能够以 Firebase Auth 中的特定用户身份访问 Cloud Firestore 的某些部分。存在安全规则,允许用户根据与其 UUID 相关联的角色对数据执行某些操作。但是,在创建 Cloud Functions 时,我不知道如何以经过身份验证的用户身份向数据库发出请求。
此处的代码将完全绕过设置的安全规则(从而违背目的):
admin.initializeApp({
credential: admin.credential.cert({
projectId: '<PROJECT_ID>',
clientEmail: 'foo@<PROJECT_ID>.iam.gserviceaccount.com',
privateKey: '-----BEGIN PRIVATE KEY-----\n<KEY>\n-----END PRIVATE KEY-----\n'
}),
databaseURL: 'https://<DATABASE_NAME>.firebaseio.com'
});
我的问题是如何以经过身份验证的用户身份在 Cloud Functions 中执行操作。
Admin SDK 不提供一种方法来将对 Firestore 的访问范围限定为某些经过身份验证的用户。如果您想查看此内容,请提交 feature request.
更新 (02.06.2018)
没关系,这似乎只适用于 。
原创
经过更多研究,使用 databaseAuthVariableOverride 似乎是我想要的。
@Doug Stevenson 说的很透彻,谢谢。 ().
对于我的 Cloud Function,我希望能够以 Firebase Auth 中的特定用户身份访问 Cloud Firestore 的某些部分。存在安全规则,允许用户根据与其 UUID 相关联的角色对数据执行某些操作。但是,在创建 Cloud Functions 时,我不知道如何以经过身份验证的用户身份向数据库发出请求。
此处的代码将完全绕过设置的安全规则(从而违背目的):
admin.initializeApp({
credential: admin.credential.cert({
projectId: '<PROJECT_ID>',
clientEmail: 'foo@<PROJECT_ID>.iam.gserviceaccount.com',
privateKey: '-----BEGIN PRIVATE KEY-----\n<KEY>\n-----END PRIVATE KEY-----\n'
}),
databaseURL: 'https://<DATABASE_NAME>.firebaseio.com'
});
我的问题是如何以经过身份验证的用户身份在 Cloud Functions 中执行操作。
Admin SDK 不提供一种方法来将对 Firestore 的访问范围限定为某些经过身份验证的用户。如果您想查看此内容,请提交 feature request.
更新 (02.06.2018)
没关系,这似乎只适用于
原创
经过更多研究,使用 databaseAuthVariableOverride 似乎是我想要的。
@Doug Stevenson 说的很透彻,谢谢。 (