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

云函数向Firestore添加数据时出现权限错误

曾新
2023-03-14
const Firestore = require('@google-cloud/firestore');
const PROJECTID = 'MY_PROJECT_ID';
const firestore = new Firestore({
  projectId: PROJECTID,
  timestampsInSnapshots: true,
});

/**
 * Responds to any HTTP request.
 *
 * @param {!express:Request} req HTTP request context.
 * @param {!express:Response} res HTTP response context.
 */
exports.helloWorld = (req, res) => {
    return firestore.collection("users").add({
    first: "Ada",
    last: "Lovelace",
    born: 1815
    });
};

package.json:

{
  "name": "sample-http",
  "version": "0.0.1",
  "dependencies": {
    "@google-cloud/firestore": "0.17.0",
    "semver": "^5.5.1"
  }
}

我还为数据库设置了如下规则:

service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
        allow read, write;
    }
  }
}

共有1个答案

乐正涵忍
2023-03-14

多亏了@andresmijares,我才得以解决我的问题。我进一步研究了quickstart,并按以下方式更改了index.js(特别是helloWorld函数之前的所有内容)。

const admin = require('firebase-admin');

admin.initializeApp({
  credential: admin.credential.applicationDefault()
});

const db = admin.firestore();

/**
 * Responds to any HTTP request.
 *
 * @param {!express:Request} req HTTP request context.
 * @param {!express:Response} res HTTP response context.
 */
exports.helloWorld = (req, res) => {
/*  let message = req.query.message || req.body.message || 'Hello World!';
  res.status(200).send(message);
  */
    return db.collection("users").add({
    first: "Ada",
    last: "Lovelace",
    born: 1815
    });
};

我得到了错误

“无法加载文件index.js中的代码。是否列出了包中的所有必需模块。json依赖项?详细堆栈跟踪:错误:找不到模块'firebase-admin'”

{
  "name": "sample-http",
  "version": "0.0.1",
    "dependencies": {
    "semver": "^5.5.1",
    "@google-cloud/firestore": "^1.3.0",
    "firebase-admin": "^7.1.1"
  }
}
 类似资料:
  • 我尝试在云函数中使用Firestore,但遇到了错误 数据库。集合(…)。文档(…)。集合(…)。文档(…)。add不是promise的功能 我先读了这些主题,然后又读了其他主题。但我没有帮我。包裹。json外观 云功能之一 此代码来自函数 我怎样才能修复它?

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

  • 这是我在调试控制台中得到的错误: 也是的,我已经应用了谷歌依赖项。 失败:生成失败,出现异常。 > 其中:Script“C:\flutter\packages\flutter_tools\gradle\flutter.gradle”行:358 错误:配置项目':cloud_firestore_web'时出现问题。 请访问https://help.gradle.org获取更多帮助 生成在3s中失败

  • 问题内容: 尝试将数据从平面文件数据库转储加载到新表时遇到权限错误。我知道文件和表的架构相同,因此尝试调整权限。我还应该尝试什么? 问题答案: 这是 MySQL论坛上的一个线程,对此进行了讨论。 答案是肯·塔瑟尔(Ken Tassell)发布的 使用以下命令解决了问题:

  • 当用户购买产品并按条支付时,我在自动化工作流程的集成方面有点困难。我正在使用火力还原和云功能。 工作流程 > 用户通过条纹Checkout.js购买产品 付款存储在付款集合中 触发云功能(付款收款的onWrite) TODO:将文档添加到集合“用户”文档中的“采购”集合 费用支付 除了第4步和第5步之外,我已经实现了这个工作流,因为我不知道如何在云函数中从Firestore检索和添加DocRef(

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