首页 > 解决方案 > 为什么我的服务帐号无法远程访问 Google Cloud Firestore?

问题描述

所以我按照这里的说明操作: https ://firebase.google.com/docs/firestore/quickstart 让我的 Node 应用程序与 Firestore 一起工作(在Initialize on your own server下)。我像他们说的那样创建了一个服务帐户,赋予它“Cloud Firestore Editor”权限并下载了.json密钥文件。当我像这样运行示例代码时:

const admin = require('firebase-admin');
const serviceAccount = require('./gcloud-service-account.json')

admin.initializeApp({
  credential: admin.credential.cert(serviceAccount)
});

var db = admin.firestore();
db.settings({ timestampsInSnapshots: true })

var docRef = db.collection('users').doc('alovelace');

var setAda = docRef.set({
  first: 'Ada',
  last: 'Lovelace',
  born: 1815
});

我收到此错误:

UnhandledPromiseRejectionWarning: Error: 7 PERMISSION_DENIED: Missing or insufficient permissions.

我做错了什么,或者我可以采取哪些步骤来调试它?谢谢!

标签: firebasegoogle-cloud-platformgoogle-cloud-firestore

解决方案


没关系....这是我缺少的服务帐户创建的最后一步-出于某种原因,您必须授予用户对其自身的访问权限,因此将新创建的帐户名称放在“授予用户”框中。希望对某人有所帮助。


推荐阅读