node.js - firebase 可调用函数在部署期间附加 -default
问题描述
我不知道为什么,但是当我尝试部署以下可调用函数时,在 cli 和 firebase 仪表板中,它的名称总是附加-default
src/helloWorld.ts
import {region} from "firebase-functions"
async function handler(input, context) {
return "Hello World"
}
export default region('europe-west3').runWith({ memory: '2GB' }).https.onCall(handler);
索引.ts
import admin from 'firebase-admin';
admin.initializeApp();
export const hellloWorld = require('./src/helloWorld');
我希望这个可调用函数仅helloWorld
在部署时被调用,但实际上它是helloWorld-default
解决方案
这是由 Firebase Functions 的一项功能(称为功能组)引起的,该功能require
对模块的工作方式不同。
按照src/helloWorld.ts
您的方式,该语句require('./src/helloWorld')
返回一个如下所示的对象:
{
default: (input, context) => { /* ... */ }
}
在您的index.ts
文件中,您将此对象导出为helloWorld
(纠正错字)。当您部署函数目录时,它会看到这个导出的对象,并决定导出它的每个属性,其前缀为导出名称 ( exportedName-propertyNameOfExportedObject
),它给出helloWorld-default
.
要获得您期望的行为,请显式导出默认属性:
export const helloWorld = require('./src/helloWorld').default;
推荐阅读
- sql-server - 如何从一系列长字符串中删除小数位
- excel - 如何使用写在不同工作表中的列名引用数据表中的过滤器字段
- scala - How to run a task on particular command?
- jax-rs - 如何制作可以使用@Context 注入的自定义上下文对象?
- php - moodle 3.6 如何使用网络服务功能获取学习者的进度
- google-cloud-platform - 安排 gcloud 命令
- php - How to add a user based link in WordPress admin menu
- ios - 当一个对象的属性同时由其他两个对象设置时,CPU 命中 %100
- sql - 如何检查表中存在的确切行?
- angular - Angular - 无法将值设置为变量