当前位置: 首页 > 知识库问答 >
问题:

Firebase错误,通过函数写入Firestore:“7 permission_dention:缺少或不充分的权限”

崔宜修
2023-03-14
import * as admin from "firebase-admin";
import * as functions from "firebase-functions";

const config = functions.config();

admin.initializeApp(functions.config().firebase);
admin.database.enableLogging(true);

exports.subscriptions = functions.https.onRequest(
  async (req, res) => {
    try {
      const requestSubscription = req.body;
      const subscription = {
        subscription_id: requestSubscription.subscription_id,
        email: requestSubscription.email || ""
      };

      const id = subscription.subscription_id;
      const dbSubscriptions = admin.firestore().collection("subscriptions");
      await dbSubscriptions.doc(id).set(subscription);

      return res.status(200).send(`Success`);
    } catch (e) {
      console.error(e.stack);
      return res.status(500).send(`Error`);
    }
  }
);

这在当地如预期的那样工作。部署时,会出现以下错误:

Error: 7 PERMISSION_DENIED: Missing or insufficient permissions.
    at Object.exports.createStatusError (/user_code/node_modules/firebase-admin/node_modules/grpc/src/common.js:87:15)
    at Object.onReceiveStatus (/user_code/node_modules/firebase-admin/node_modules/grpc/src/client_interceptors.js:1214:28)
    at InterceptingListener._callNext (/user_code/node_modules/firebase-admin/node_modules/grpc/src/client_interceptors.js:590:42)
    at InterceptingListener.onReceiveStatus (/user_code/node_modules/firebase-admin/node_modules/grpc/src/client_interceptors.js:640:8)
    at callback (/user_code/node_modules/firebase-admin/node_modules/grpc/src/client_interceptors.js:867:24)

我的functions/package.json文件是:

{
  "name": "functions",
  "scripts": {
    "lint": "tslint --project tsconfig.json",
    "build": "tsc",
    "serve": "npm run build && firebase serve --only functions",
    "shell": "npm run build && firebase functions:shell",
    "start": "npm run shell",
    "deploy": "firebase deploy --only functions",
    "logs": "firebase functions:log"
  },
  "main": "lib/index.js",
  "dependencies": {
    "express": "4.16.3",
    "firebase-admin": "5.12.1",
    "firebase-functions": "1.0.3"
  },
  "devDependencies": {
    "tslint": "^5.8.0",
    "typescript": "^2.5.3"
  },
  "private": true
}

我搜索这个错误的唯一链接是这个未回答的问题:PERMISSION_DENIED Firestore CloudFunction TypeScript

我已经设置了我的Firestore规则,允许任何人也可以读写,即使上面使用的是管理,但它仍然不起作用。

有人能帮忙吗?

共有1个答案

燕文昌
2023-03-14

我联系了消防支持,他们也不知道发生了什么。我创建了一个新项目,部署了,它工作了。也许这只是新项目的一个奇怪的小故障。

 类似资料:
  • 然后创建了谷歌云任务。 我将此任务添加到队列中。现在,当我从Google云控制台运行这个任务时,它会抛出错误。我签入了firebase函数日志,我可以看到函数被调用,但它扔给了我 错误:7 permission_denied:缺少权限或权限不足。 我有一个服务帐户,它有云功能开发人员云功能服务代理所有者角色。 我不知道这里的问题是什么,因为分配的角色很好。

  • 我在自学firestore,我想不出一种方法,只允许用户更新、删除或阅读他们添加的集合。 我使用firebase auth进行用户处理。对于每个集合,我将作为保存在数据库中。 这是我的规矩 当我试图读取/获取数据时,我得到错误。 我正在使用firestore的web api(JavaScript)。这是我用来读取数据的代码。

  • 我正在编写云函数,Firez是这样自动导入的。 但在部署时,错误如下所示。我试着这样做,它部署没有任何错误,但我不确定这是正确的方式与否。 有人知道吗? node_modules/@googlecloud/firestore/types/firestore。d、 ts:28:15-错误TS2300:重复标识符“DocumentData”。 28导出类型DocumentData={[field: s

  • 使用Quasar和Firebase的Im 我得到FireBaseError:缺少或权限不足。控制台错误 错误 脚本: 每当我把 发生缺少权限的情况 但当我移除绑定时,它没有错误 但我想在字段中获取username:值并将其放在我的导航上 firebase-用户名 但我不能得到它除非我移除 同样,当我移除它时,丢失权限的情况再次发生。 我该怎么办 整个代码:

  • 我使用的是Role(允许读,写:如果request.auth.uid!=null),当我登录时,我得到的数据是ok的,但当我注销用户时,我得到的错误是:缺少或不充分的权限。首先,我认为这是因为我没有取消订阅我尝试的可观察的(rxjs/operator/takewhile)即使我使用异步管道,我也得到了同样的错误。

  • 我有以下规则: 所以基本上,我希望经过身份验证的用户能够读/写和集合。但当我创建一个用户并登录时,我会尝试写: 但我有一个错误: 不知道我做错了什么。任何帮助都将不胜感激——谢谢!