作为身份验证用户的Firebase功能HTTP请求

时间:2019-02-06 04:54:01

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

对于我的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中执行操作。

2 个答案:

答案 0 :(得分:0)

Admin SDK没有提供一种方法来限制某些经过身份验证的用户对Firestore的访问。如果您希望看到此内容,请提交feature request

答案 1 :(得分:0)

更新(02.06.2018)

没关系,这似乎仅适用于Realtime Database

原始

经过更多的研究,似乎很想使用databaseAuthVariableOverride

@Doug Stevenson,您非常周到,谢谢。 (Does Cloud Functions for Firebase respect the realtime database rules?)。