首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >添加防火墙防火墙条目失败:7 PERMISSION_DENIED

添加防火墙防火墙条目失败:7 PERMISSION_DENIED
EN

Stack Overflow用户
提问于 2021-05-16 15:47:44
回答 1查看 238关注 0票数 1

我试图使用Firebase函数从我的Node环境中用Express js在Firestore数据库中创建一个文档,但是如果函数日志上出现以下错误,它就会失败。

代码语言:javascript
复制
Error: Process exited with code 16
at process.on.code (/layers/google.nodejs.functions-framework/functions-framework/node_modules/@google-cloud/functions-framework/build/src/invoker.js:275:22)
at process.emit (events.js:198:13)
at process.EventEmitter.emit (domain.js:448:20)
at process.exit (internal/process/per_thread.js:168:15)
at Object.sendCrashResponse (/layers/google.nodejs.functions-framework/functions-framework/node_modules/@google-cloud/functions-framework/build/src/logger.js:37:9)
at process.on.err (/layers/google.nodejs.functions-framework/functions-framework/node_modules/@google-cloud/functions-framework/build/src/invoker.js:271:22)
at process.emit (events.js:198:13)
at process.EventEmitter.emit (domain.js:448:20)
at emitPromiseRejectionWarnings (internal/process/promises.js:140:18)
at process._tickCallback (internal/process/next_tick.js:69:34) 

firebase.ts文件:

代码语言:javascript
复制
import * as admin from 'firebase-admin'
import * as functions from 'firebase-functions'

admin.initializeApp({
  credential: admin.credential.cert({
    privateKey: functions.config().private.key.replace(/\\n/g, '\n'),
    projectId: functions.config().project.id,
    clientEmail: functions.config().client.email
  }),
  databaseURL: 'https://app-id.firebaseio.com'
})

const db = admin.firestore()
export { admin, db }

controller.ts:

代码语言:javascript
复制
import { Response } from 'express'
import { db } from './config/firebase'

type EntryType = {
  title: string,
  text: string,
}

type Request = {
  body: EntryType,
  params: { entryId: string }
}

const addEntry = async (req: Request, res: Response) => {
const { title, text } = req.body
try {
  const entry = db.collection('entries').doc()
  const entryObject = {
    id: entry.id,
    title,
    text,
  }

  await entry.set(entryObject).catch(error => {
      return res.status(400).json({
        status: 'error',
        message: error.message
      })
    })

  return res.status(200).json({
     status: 'success',
     message: 'entry added successfully',
     data: entryObject
  })
 } catch(error) {
    console.log(error);
    return res.status(500).json(error.message) 
 }
}

我从这个触发器收到以下回复:

代码语言:javascript
复制
{
    "status": "error",
    "message": "7 PERMISSION_DENIED: Invalid project number: 113102533737774060828"
}

这与谷歌云中的云修复规则有关吗?我对Google云功能相当陌生。如有任何建议,将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-05-16 16:21:25

这通常意味着您使用的凭据不是您要在其上使用的项目的凭据。

检查您的functions.config().private.key,以确保它确实适用于您运行此代码的项目。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67558669

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档