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

Firebase函数在一个Firebase项目中运行,但在另一个项目中给出内部错误

终育
2023-03-14

我的firebase函数在开发中运行正常(D),但在生产中给了我以下错误。此外,当我检查firebase functions控制台上的日志时,似乎没有任何活动。就好像函数没有被调用一样。

这里是我的angular应用程序调用函数的代码-

const process = this.fns.httpsCallable("gpublish");
process(data).subscribe(
  (result) => {
    console.log("function responded with result: " + JSON.stringify(result));
  },
  (err) => {
    const date1 = new Date();
    console.log("Function call error " + date1.toString() + "with" + JSON.stringify(err));
  });

以下是功能-

索引.ts

import { gpublish } from "./gpublish/gpublish";
import { sendEmail } from "./sendEmail";

export {gpublish,sendEmail };

GPublish.ts

import * as functions from "firebase-functions";
const fs = require("fs");
const { google } = require("googleapis");
const script = google.script("v1");
const scriptId = "SCRIPT_ID";
const googleAuth = require("google-auth-library");
import { admin } from "../admin";
const db = admin.firestore();

export const gpublish = functions.https.onCall(async (data: any, res: any) => {
  try {
    const googleTest = data.test;
    console.log("Publishing to google test of name " + googleTest.testName);
    
    // read the credentials and construct the oauth client
    const content = await fs.readFileSync("gapi_credentials.json");
    const credentials = JSON.parse(content); // load the credentials
    const { client_secret, client_id, redirect_uris } = credentials.web;
    const functionsOauth2Client = new googleAuth.OAuth2Client(client_id,client_secret, redirect_uris); // Constuct an auth client
    functionsOauth2Client.setCredentials({refresh_token: credentials.refresh_token}); // Authorize a client with credentials

    // run the script
    return runScript(functionsOauth2Client,scriptId,JSON.stringify(googleTest)
    ).then((scriptData: any) => {
      console.log("Script data is" + JSON.stringify(scriptData));
      sendEmail(googleTest, scriptData);
      return JSON.stringify(scriptData);
    });
  } catch (err) {
    return JSON.stringify(err);
  }
});

function runScript(auth: any, scriptid: string, test: any) {
  return new Promise(function (resolve, reject) {
    script.scripts
      .run({auth: auth,scriptId: scriptid, resource: {function: "doGet", devMode: true,parameters: test }
      })
      .then((respons: any) => { resolve(respons.data);})
      .catch((error: any) => {reject(error);});
  });
}

在开发和生产中部署功能时,我已经正确地更改了服务帐户密钥和google凭据。

    null

暂时还没有答案

 类似资料:
  • 我有两个Firebase项目使用存储来存储文件和Firestore的元数据。一个项目用于试运行,另一个用于生产。我有一个简单的react应用程序设置,用于将我的文件和元数据上传到暂存项目。 我试图找出如何将暂存存储和Firestores同步到生产项目。我在google搜索和firebase文档方面运气不佳(除了看到可以使用node连接到多个Firebase项目之外)。 任何帮助将不胜感激。

  • 问题内容: 我在玩Android Studio,制作一个非常简单,非常愚蠢的应用,以了解 有关保存关键首选项的知识,但遇到了一个奇怪的障碍。我将尽力 提供尽可能多的内容,因为可能很难重现此错误,但是 老实说,我正在运行的两个应用程序都是超级基本的,并且没有编译 错误。 规格:没有模拟器,我正在运行Samsung Galaxy Tablet。Windows 7,Android Studio 1.2,

  • 我在两个项目上使用相同的容器(类似的资源)--生产和阶段。两者都有自定义域与云耀斑DNS设置,并在同一地区。容器构建是在一个完全不同的项目中完成的,IAM用于处理对这些容器的访问。对于所有5个服务,这两个项目服务都有80个并发和300秒超时。 三天前一切都很好,但从昨天开始,几乎所有的云运行服务(谢天谢地)都开始随机抛出503个请求。有些服务甚至一周都没有部署。同样的容器在生产项目上运行良好,没有

  • 我正在构建一个定制的Java库。我把我的大部分“重复”代码都保存在那里,比如文件处理、字符串处理等。每次我想使用它们时,我都必须将该类复制并粘贴到我正在进行的其他项目中。有没有办法让这个自定义库类成为“依赖项”?我在用我的智能手机。

  • Catalina启动严重:所需的服务器组件无法启动,因此Tomcat无法启动。org.apache.Catalina.LifeCycleException:无法启动组件[StandardServer[8005]](位于org.apache.Catalina.util.LifeCycleBase.start(LifeCycleBase.167)(位于org.apache.Catalina.Start

  • 我正在构建一个应用程序,它有任意数量的“微社区”。目前,一个用户只能属于一个,所以当他们最初注册时,他们输入一个秘密代码,将他们与相关社区联系起来。 将这些“微社区”(由未来在应用程序上玩一个空间的客户拥有)分离成单独的Firebase项目或将所有数据保存在一起是明智的吗?