我已经部署了以下firebase函数:
import * as functions from 'firebase-functions';
import * as admin from 'firebase-admin';
admin.initializeApp();
// other functions
exports.createProfileDocument = functions.auth.user().onCreate(async user => {
await admin.firestore().collection('profiles').doc(user.uid).set({
userName: user.displayName
})
});
这是有效的,但是最近停止了,当创建一个新的用户帐户时,该功能将不会触发(日志中没有任何内容,没有错误,没有活动等)。我将依赖项更新为以下内容:
"dependencies": {
"firebase-admin": "^8.0.0",
"firebase-functions": "^2.3.1",
"firebase-tools": "^6.11.0"
},
该函数现在可以正常启动,但由于以下错误而失败:
/user_code/node_modules/firebase-admin/node_modules/@google-cloud/firestore/build/src/index.js:740
async initializeIfNeeded() {
^^^^^^^^^^^^^^^^^^
SyntaxError: Unexpected identifier
at createScript (vm.js:56:10)
at Object.runInThisContext (vm.js:97:10)
at Module._compile (module.js:549:28)
at Object.Module._extensions..js (module.js:586:10)
at Module.load (module.js:494:32)
at tryModuleLoad (module.js:453:12)
at Function.Module._load (module.js:445:3)
at Module.require (module.js:504:17)
at require (internal/module.js:20:19)
at FirebaseNamespace.get [as firestore] (/user_code/node_modules/firebase-admin/lib/firebase-namespace.js:329:29)
有什么想法吗?
答案 0 :(得分:0)
看来这是由于initializeIfNeeded()之前的async关键字导致的失败,因为这在节点6中不可用。我能够通过添加
解决问题"engines": { "node": "8" }
到我的package.json
答案 1 :(得分:0)
您需要将节点更新到版本8.x,该版本允许异步挂接。