const functions = require("firebase-functions");
const admin = require('firebase-admin');
admin.initializeApp();
exports.addMessage = functions.https.onRequest(async (req, res) => {
const original = 'dhara';
const writeResult = await admin.firestore().collection('messages').add({original: original});
res.json({result: `Message with ID: ${writeResult.id} added.`});
});
gcloud tasks queues create auction-autobid-queue
然后创建了谷歌云任务。
const serviceAccount = require('./my-service-account.json');
const {CloudTasksClient} = require('@google-cloud/tasks');
const client = new CloudTasksClient({
credentials: serviceAccount
});
async function createTask() {
const project = 'my-project';
const queue = 'auction-autobid-queue';
const location = 'europe-west1';
const payload = 'Hello, World!';
const serviceAccountEmail = "my-name@my-project.iam.gserviceaccount.com";
const parent = client.queuePath(project, location, queue);
const task = {
httpRequest: {
httpMethod: 'GET',
url: 'https://us-central1-my-project.cloudfunctions.net/addMessage',
oidcToken: {
serviceAccountEmail,
},
},
};
const inSeconds = 60;
if (inSeconds) {
task.scheduleTime = {
seconds: inSeconds + Date.now() / 1000
};
}
console.log('Sending task:');
console.log(task);
const request = {parent, task};
const [response] = await client.createTask(request);
const name = response.name;
console.log(`Created task ${name}`);
}
process.on('unhandledRejection', err => {
console.error(err.message);
process.exitCode = 1;
});
createTask();
我将此任务添加到队列中。现在,当我从Google云控制台运行这个任务时,它会抛出错误。我签入了firebase函数日志,我可以看到函数被调用,但它扔给了我
错误:7 permission_denied:缺少权限或权限不足。
我有一个服务帐户,它有云功能开发人员云功能服务代理所有者角色。
我不知道这里的问题是什么,因为分配的角色很好。
const admin = require("firebase-admin");
const serviceAccount = require("./myServiceKey.json");
const firebase = admin.initializeApp({
credential: admin.credential.cert(serviceAccount)
});
const firestore = firebase.firestore();
exports.addMessage = functions.https.onRequest(async (req, res) => {
const original = 'dhara';
const writeResult = await firestore().collection('messages').add({original: original});
res.json({result: `Message with ID: ${writeResult.id} added.`});
});
这在当地如预期的那样工作。部署时,会出现以下错误: 我的functions/package.json文件是: 我搜索这个错误的唯一链接是这个未回答的问题:PERMISSION_DENIED Firestore CloudFunction TypeScript 我已经设置了我的Firestore规则,允许任何人也可以读写,即使上面使用的是管理,但它仍然不起作用。 有人能帮忙吗?
我在自学firestore,我想不出一种方法,只允许用户更新、删除或阅读他们添加的集合。 我使用firebase auth进行用户处理。对于每个集合,我将作为保存在数据库中。 这是我的规矩 当我试图读取/获取数据时,我得到错误。 我正在使用firestore的web api(JavaScript)。这是我用来读取数据的代码。
我使用的是Role(允许读,写:如果request.auth.uid!=null),当我登录时,我得到的数据是ok的,但当我注销用户时,我得到的错误是:缺少或不充分的权限。首先,我认为这是因为我没有取消订阅我尝试的可观察的(rxjs/operator/takewhile)即使我使用异步管道,我也得到了同样的错误。
我的账户仍然在免费计划中,我在日志中得到了一个通知,即我应该配置计费账户,但如果理解文档正确,我应该能够访问谷歌云平台中的服务,因此读取同一数据库中的其他节点应该不成问题。 我已经在stackoverflow上发现了两个类似的问题,但没有找到解决方案。也许其他人在此期间也面临这个问题,并能够解决它? PERMISSION_DENIED Firestore CloudFunction通过函数“7 P
我有以下规则: 所以基本上,我希望经过身份验证的用户能够读/写和集合。但当我创建一个用户并登录时,我会尝试写: 但我有一个错误: 不知道我做错了什么。任何帮助都将不胜感激——谢谢!
我编写了一些与默认规则完美配合的代码。代码如下: 但如果我用这些规则 我明白了 我做错了什么?