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

在firebase函数管理sdk中找不到服务帐户

李康安
2023-03-14

我试图在我的函数文件夹中初始化Firebase admin sdk,以便我的云函数可以通过管理员读/写访问访问我的数据库,但是当我试图部署我的函数时,会返回以下错误

错误:错误分析触发器:找不到模块'/serviceKey'。json'

我曾尝试在functions目录中运行npm安装,但没有任何帮助。

这是我的包裹。json文件

{
  "name": "functions",
  "description": "Cloud Functions for Firebase",
  "scripts": {
    "serve": "firebase serve --only functions",
    "shell": "firebase functions:shell",
    "start": "npm run shell",
    "deploy": "firebase deploy --only functions",
    "logs": "firebase functions:log"
  },
  "dependencies": {
    "cors": "^2.8.4",
    "express": "^4.16.3",
    "firebase": "^5.3.1",
    "firebase-admin": "^5.13.1",
    "firebase-functions": "^2.0.2"
  },
  "private": true
}

这是我的index.js档案

{
    const functions = require('firebase-functions');
    const express = require('express');

    const cors = require('cors')({origin: true});

    var firebase = require("firebase");


    var admin = require("firebase-admin");

    require("firebase/auth");
    require("firebase/database");
    //require("firebase/firestore");
    //require("firebase/messaging");
    require("firebase/functions");


    var serviceAccount = require("/serviceKey.json");


    // Initialize the app with a service account, granting admin 
    privileges
    admin.initializeApp({
      credential: admin.credential.cert(serviceAccount),
      databaseURL: "https://<database name>.firebaseio.com"
    });

    const displayqr = express();
    const geturl = express();


    displayqr.get('/displayqr', (request, response) => {
         console.log("response sent");
            response.send("testio/qrdisplay.html");
        });




     exports.displayqr = functions.https.onRequest(displayqr);



     exports.geturl = functions.https.onCall((email) => {// get url 
    function
        });
}

共有3个答案

姬魁
2023-03-14

将json文件放在lib文件夹中对我来说很有用(functions\lib),我认为由于我使用的是typescript,firebase将从lib文件部署javascript函数,因此它会在lib文件夹中查找json文件

郑晨
2023-03-14

在我的例子中,我在项目的根部有service-帐户文件。它在本地工作,但部署它是一个问题。

../service-account.json  (Root)

对我有用的是:

如果是节点应用程序,请将文件从项目根目录移动到功能目录,因为firebase将在不同位置托管文件

./service-account.json  (Inside functions directory)
姜志行
2023-03-14

您将索引放在与索引相同的文件夹中。js然后说

var serviceAccount = require("./myfirebaseapp-firebase-adminsdk-my-secret-key.json");

在那之后,你就可以admin了。初始化EAPP

 类似资料:
  • 问题内容: 大家好,我似乎一直无法解决当前的问题,而且我的头正变得越来越秃。 当前的问题是我的SDK管理员找不到我的Java,也找不到我的SWT文件。 我正在运行Windows 7 64位,并且我的SDK,Java,SWT位于以下位置。 我是第一次学习编码,到目前为止,我已经尝试了所有方法。设置SDK管理器指定的正确路径,甚至尝试设置多个路径,更改批处理文件,然后列表继续。 有任何想法吗? 混乱的

  • 我试图将Firebase Admin SDK添加到我的Java Web应用程序中,但在init上出现以下错误: 我将Firebase依赖项添加到pom.xml文件中,并使用以下代码初始化Firebase:ClassLoader ClassLoader=Thread.currentThread().GetContextClassLoader();InputStream为=ClassLoader.Ge

  • 我使用Firebase云功能来触发FCM时,有新创建的FCM。但它有一个错误"错误:在尝试验证FCM服务器时发生错误。确保用于验证此SDK的凭据具有适当的权限。" 我在 尝试在Firebase云功能上验证FCM服务器时出错 并且有通过在服务号中添加角色来解决的解决方案。 但我找不到将角色添加到服务帐户的方法。 如何向firebase项目服务帐户添加“firebase管理员”角色? 谢谢您们。

  • 我正在尝试为Android实现一个推送通知解决方案。我正在遵循以下教程中给出的步骤:http://www.androidhive.info/2012/10/android-push-notifications-using-google-cloud-messaging-gcm-php-and-mysql/ 但是,当我试图使用Android sdk(我使用的是最新的sdk)安装Google云消息库时,

  • 我试图使用Eclipse(MARS)、TOmcat 8.x和Jersey 2.2.2构建一个Rest服务 我已经创建了这么多链接,或者我已经导入了项目本身。但是当我在服务器上运行项目时,我总是得到404找不到。 Apache.catalina.core.ApplicationContext日志信息:将servlet jersey-serlvet标记为不可用Apache.catalina.core.

  • 管理帐户数据 若要使用此机能,可能需先更新系统软件。 可确认或变更进入PlayStation®Network时建立的帐户数据。 仅能于已登入PlayStation®Network时操作。请进入(PlayStation®Netrowk)并选择(管理账户)。 可确认/变更的项目 账户管理 可确认/变更帐户数据。 信用卡数据 登入ID(电子邮件地址) 密码 姓名 地址 个人造型 个人资料 通知邮件设定