Typescript 为 firebase 函数转译为 javascript
Typescript transpiling to javascript for firebase functions
我已经开始研究 firebase 的云功能,但是作为一名 Android 开发人员在这么长时间之后回到 javascript 一直很艰难。
我已经使用 firebase 命令行工具配置了一个新项目,即 firebase login/init/deploy。还有 npm 和所有需要的依赖项。
我正在使用 Webstorm 进行开发,并决定按照 youtube 上的视频尝试使用 Typescript。
[https://www.youtube.com/watch?v=GNR9El3XWYo&t=1106s][1]
我已经成功编译了我的 Typescript,但是当转译为 javascript 时,它编译不正确。
谁能帮我解决这个问题?
下方TS脚本
import * as functions from 'firebase-functions'
import * as request from 'request-promise'
export let addPlayerRequestNotification = functions.database
.ref('notifications/{id}/notification')
.onWrite(async event => {
let notificaion = event.data.val();
let oauthToken = await functions.config().firebase.credential.getAccessToken();
await request ({
url: 'https://fcm.googleapis.com/fcm/send',
method: 'POST',
headers: {
'Content-Type' :' application/json',
'Authorization': 'key='+oauthToken
},
body: {
"notification": {
"title": notificaion.title,
"text": notificaion.text,
},
to : '/topics/'+notificaion.topic
}
});
});
而javascript编译后的代码是
"use strict";
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
const functions = require("firebase-functions");
const request = require("request-promise");
exports.addPlayerRequestNotification = functions.database
.ref('notifications/{id}/notification')
.onWrite((event) => __awaiter(this, void 0, void 0, function* () {
let notificaion = event.data.val();
let oauthToken = yield functions.config().firebase.credential.getAccessToken();
yield request({
url: 'https://fcm.googleapis.com/fcm/send',
method: 'POST',
headers: {
'Content-Type': ' application/json',
'Authorization': 'key=' + oauthToken
},
body: {
"notification": {
"title": notificaion.title,
"text": notificaion.text,
},
to: '/topics/' + notificaion.topic
}
});
}));
违规行是这条
.onWrite((event) => __awaiter(this, void 0, void 0, function* () {
更具体地说是 => 字符。我得到的错误是预期的表达式。
这是我的 tsconfig.json 文件
{
"compilerOptions": {
"target": "es6",
"module": "commonjs"
},
"include": [
"functions/**/*.ts"
],
"exclude": [
"functions/node_modules"
]
}
如果有人对此有任何想法,我将不胜感激。
我发现了我的问题,我设置了旧版本的 javascript 以在 Webstorm 5.1 中编译。升级到 6 解决了问题。
我已经开始研究 firebase 的云功能,但是作为一名 Android 开发人员在这么长时间之后回到 javascript 一直很艰难。
我已经使用 firebase 命令行工具配置了一个新项目,即 firebase login/init/deploy。还有 npm 和所有需要的依赖项。
我正在使用 Webstorm 进行开发,并决定按照 youtube 上的视频尝试使用 Typescript。
[https://www.youtube.com/watch?v=GNR9El3XWYo&t=1106s][1]
我已经成功编译了我的 Typescript,但是当转译为 javascript 时,它编译不正确。
谁能帮我解决这个问题?
下方TS脚本
import * as functions from 'firebase-functions'
import * as request from 'request-promise'
export let addPlayerRequestNotification = functions.database
.ref('notifications/{id}/notification')
.onWrite(async event => {
let notificaion = event.data.val();
let oauthToken = await functions.config().firebase.credential.getAccessToken();
await request ({
url: 'https://fcm.googleapis.com/fcm/send',
method: 'POST',
headers: {
'Content-Type' :' application/json',
'Authorization': 'key='+oauthToken
},
body: {
"notification": {
"title": notificaion.title,
"text": notificaion.text,
},
to : '/topics/'+notificaion.topic
}
});
});
而javascript编译后的代码是
"use strict";
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
const functions = require("firebase-functions");
const request = require("request-promise");
exports.addPlayerRequestNotification = functions.database
.ref('notifications/{id}/notification')
.onWrite((event) => __awaiter(this, void 0, void 0, function* () {
let notificaion = event.data.val();
let oauthToken = yield functions.config().firebase.credential.getAccessToken();
yield request({
url: 'https://fcm.googleapis.com/fcm/send',
method: 'POST',
headers: {
'Content-Type': ' application/json',
'Authorization': 'key=' + oauthToken
},
body: {
"notification": {
"title": notificaion.title,
"text": notificaion.text,
},
to: '/topics/' + notificaion.topic
}
});
}));
违规行是这条
.onWrite((event) => __awaiter(this, void 0, void 0, function* () {
更具体地说是 => 字符。我得到的错误是预期的表达式。
这是我的 tsconfig.json 文件
{
"compilerOptions": {
"target": "es6",
"module": "commonjs"
},
"include": [
"functions/**/*.ts"
],
"exclude": [
"functions/node_modules"
]
}
如果有人对此有任何想法,我将不胜感激。
我发现了我的问题,我设置了旧版本的 javascript 以在 Webstorm 5.1 中编译。升级到 6 解决了问题。