我正在寻找部署一个用TypeScript编写的云函数,使用一个火力恢复触发器。脚本工作没有任何问题。然而,我需要指定执行区域,为了尊重我的RGPD,我需要在欧洲西部1执行的函数。我已经看了关于这个主题的留档,它被指定在函数中添加“。区域”,但是这会产生一个错误,你会发现附加的。获得的错误是"错误TS2339:属性'区域'在类型'DocumentBuilder上不存在。我想指出,我在本地VSC中没有任何错误,只是我连接到了Firebase。
我ndex.ts
import * as functions from 'firebase-functions';
import * as admin from 'firebase-admin';
admin.initializeApp();
const db = admin.firestore();
const fcm = admin.messaging();
export const sendToDevice = functions.firestore
.document('orders/{orderId}')
.region('europe-west1')
.onCreate(async snapshot => {
const order = snapshot.data();
const querySnapshot = await db
.collection('users')
.doc(order.seller)
.collection('tokens')
.get();
const tokens = querySnapshot.docs.map(snap => snap.id);
const payload: admin.messaging.MessagingPayload = {
notification: {
title: 'New Order!',
body: `you sold a ${order.product} for ${order.total}`,
icon: 'your-icon-url',
click_action: 'FLUTTER_NOTIFICATION_CLICK'
}
};
return fcm.sendToDevice(tokens, payload);
});
包裹json:
{
"name": "functions",
"scripts": {
"lint": "tslint --project tsconfig.json",
"build": "tsc",
"serve": "npm run build && firebase serve --only functions",
"shell": "npm run build && firebase functions:shell",
"start": "npm run shell",
"deploy": "firebase deploy --only functions",
"logs": "firebase functions:log"
},
"engines": {
"node": "8"
},
"main": "lib/index.js",
"dependencies": {
"firebase-admin": "^8.0.0",
"firebase-functions": "^3.1.0"
},
"devDependencies": {
"tslint": "^5.12.0",
"typescript": "^3.2.2"
},
"private": true
}
谢谢你以后的回答。在此处输入图像描述
根据文档,区域规范紧跟在函数
生成器声明之后,如下所示:
export const sendToDevice = functions
.region('europe-west1')
.firestore
.document('orders/{orderId}')
.onCreate(async snapshot => {
请注意,区域规范紧跟在函数之后。在生成器中,您拥有的是更晚的内容,这是无效的。
务必使用API文档来确定在构建函数的每个阶段哪些方法是有效的。
12. 直播域名URL规范 12.1. 推流地址: rtmp://domain/appname/streamname 12.2. 播流地址 rtmp : rtmp://domain2/appname/streamname flv: http://domain2/appname/streamname.flv hls: http://doma
默认情况下,Firebase云功能部署到美国中部地区,但我想将其部署到欧洲西部地区。 我假设通过gcloud cli设置默认区域意味着,如果我删除并重新部署了我的云功能,它们将自动部署到我指定的默认区域。然而事实并非如此。相反,我需要在代码中为每个函数显式设置区域,如下所示: 我的问题是,如果通过gcloud cli指定默认区域并不能确定您的功能部署到哪个区域,那么它实际用于什么? gcloud
A society made up of individuals who were all capable of original thought would probably be unendurable. — H. L. Mencken “随大溜” 有时会是个好主意。如果其他人需要阅读或管理你的配置清单, 或者如果你想要分享代码到社区, 那么尽可能遵循现有的样式约定会是个好主意。 操作步骤 将
问题内容: 我正在尝试运行此查询: 它只是返回两个日期相等的对象,而忽略时间部分。 但我收到: {“功能[数据库] .TruncateTime不存在”} 堆栈跟踪: 我在用着: C#Visual Studio 2010 EntityFramework 4数据库优先 网络框架4 MYSQL服务器5.6 MySQL.Data和MySQL.Data.Entity的版本是6.6.5.0 MySQL支持Tr
我已经使用firebase云函数一段时间了,今天在代码中修复了一个小错误,在尝试部署时出现了以下错误。我取消了该更改,并尝试使用上次提交的稳定更改再次部署,但仍然是相同的错误。有什么解决办法吗?PS:这是一个typescript项目,我用tsc编译它。
我在两个不同的地方创建了两个项目。比如美国中部和亚洲东北部。现在,对于这两个不同的项目,我想在各自的区域部署云功能。 我如何在环境变量或process.env中获取项目区域值,以便我可以使用它在云函数中设置该区域。