我正在按照格雷厄姆耳利的指南设置我的谷歌表格来读/写我的Firestore数据库。我创建了一个被指定为项目所有者的服务帐户,生成了密钥并将相关字符串存储在我的 testFunction 中,如下所示:
function testFunction() {
var key = "-----BEGIN PRIVATE KEY-----n<my private key>n-----END PRIVATE KEY-----n";
var email = "xxxx@<projectId>.iam.gserviceaccount.com";
var projectId = "<projectId>";
var firestore = FirestoreApp.getFirestore(email, key, projectId);
const data = {
"name": "test!!"
};
firestore.createDocument("FirstCollection", data);
}
但是,当我尝试运行它时,我收到以下错误:
错误:缺少权限或权限不足。(第 33 行,文件"Util", 项目"火商店应用"(
我尝试按如下方式设置数据库规则,但该函数仍然返回错误:
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read;
allow write: if false;
}
}
}
我在这里搜索了具有权限不足相同错误的问题,但没有找到任何对我有帮助的东西。
有人可以建议我找出问题并解决它吗?谢谢。
清单:
{
"timeZone": "Europe/Paris",
"dependencies": {
"libraries": [{
"userSymbol": "FirestoreApp",
"libraryId": "1VUSl4b1r1eoNcRWotZM3e87ygkxvXltOgyDZhixqncz9lQ3MjfT1iKFw",
"version": "22"
}]
},
"exceptionLogging": "STACKDRIVER"
}
编辑 1:添加了清单文件
编辑2:添加了数据库规则
我已经解决了这个问题。问题似乎出在我的服务帐户上。我选择了项目>所有者,而不是数据存储>云数据存储所有者。
感谢您提供的所有帮助。