对于我的Cloud Function,我希望能够以Firebase Auth中的特定用户身份访问Cloud Firestore的某些部分。存在适当的安全规则,该规则允许用户基于链接到其UUID的角色来对数据执行某些操作。但是,在创建Cloud Function时,我不知道如何以经过身份验证的用户向数据库发出请求。
此处的代码将完全绕过设置的安全规则(从而破坏了目的):
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 Function中执行操作。
答案 0 :(得分:0)
Admin SDK没有提供一种方法来限制某些经过身份验证的用户对Firestore的访问。如果您希望看到此内容,请提交feature request。
答案 1 :(得分:0)
没关系,这似乎仅适用于Realtime Database。
经过更多的研究,似乎很想使用databaseAuthVariableOverride。
@Doug Stevenson,您非常周到,谢谢。 (Does Cloud Functions for Firebase respect the realtime database rules?)。