在GCP上使用Firestore的应用程序默认凭据/服务帐户



我有一个到Firestore的简单服务器端请求,它使用ADC在本地工作,如下所示:

import Firestore from '@google-cloud/firestore';
const db = new Firestore();
const ref = db.collection(COLLECTION_ID);
const snapshot = await ref.orderBy('enabled', 'desc').get();

我在部署到GCP时收到了这个错误PERMISSION_DENIED: Missing or insufficient permissions,即使有以下规则:

rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write: if true;
}
}
}

我也尝试过firebase-admin,但在部署时遇到了相同的错误:

import * as admin from "firebase-admin";
// initalize firebase
if(admin.apps?.length === 0){
admin.initializeApp({credential: admin.credential.applicationDefault()});
}
const snapshot = await admin
.firestore()
.collection('MY_COLLECTION')
.orderBy('enabled', 'desc')
.get();

为什么会发生这种情况?

好的,刚刚解决了这个问题(有人在这里发布了步骤(。你必须添加额外的角色";Firebase Admin SDK管理员服务代理";用于IAM设置中的应用程序引擎默认服务帐户。

最新更新