node.js - 默认的 Firebase 应用不存在。确保在使用任何 Firebase 服务之前调用 initializeApp()。在 FirebaseAppError

标签 node.js typescript firebase google-cloud-functions

我正在学习使用 Firebase Cloud Function,我正在关注 Firebase 的官方教程视频 Learn JavaScript Promises (Pt.1)

当我运行本地服务器并转到我得到的 HTTP 链接时

错误:默认的 Firebase 应用不存在。确保在使用任何 Firebase 服务之前调用 initializeApp()。

我尝试寻找解决方案,但找不到任何地方。我有一些模糊相关的问题,但对于 javascript,我的代码是 typescript 。我确实在 .js 和 .ts 文件中添加了建议的语法

admin.initializeApp(functions.config().firebase);

但是,我仍然得到同样的错误

这是我的 index.tcs。

import * as functions from 'firebase-functions';
import * as admin from 'firebase-admin';

// Start writing Firebase Functions
// https://firebase.google.com/docs/functions/typescript

export const getVoucher = functions.https.onRequest((request, response) => {
    const promise = admin.firestore().doc('/voucher/Eg2AtnGmKmX8Y0vBZiBG').get()
    const p2 = promise.then(snapshot=>{
        const data = snapshot.data()
        response.send(data)
    })
    p2.catch(error => {
        //Handlle the error
        console.log('error: '+error)
        response.status(500).send(error)
    })
});

该函数在部署到 firebase 时按预期工作。

最佳答案

您应该只在代码的全局范围内调用 admin.initializeApp()。不要传递任何参数来接受默认服务帐户,该帐户应该有权读取和写入您的 Cloud Firestore 数据库。

关于node.js - 默认的 Firebase 应用不存在。确保在使用任何 Firebase 服务之前调用 initializeApp()。在 FirebaseAppError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57397608/

相关文章:

javascript - Firebase JS 身份验证 cookie

javascript - 用于网络应用程序的 Firebase Analytics(在 Firebase 扩展之后)

javascript - 如果存在类,如何将值放入数组中

node.js - Jasmine 监视没有父对象导出并在 NODE 中使用 ES6 导入的函数

typescript - useStaticQuery : Invalid hook call. Hooks只能在函数组件体内调用

typescript - Jest 在没有 webpack 的情况下配置 typescript

导入声明的 TypeScript 问题

javascript - 按值而不是键对 react native 对象列表进行排序

node.js - nodejs加密解密有什么问题?

Java PBEWITHSHA1ANDDESEDE 加密在 Node.js 中等效吗?