【发布时间】:2020-07-10 18:22:04
【问题描述】:
我正在使用 Firebase 云功能将我的 Firestore 数据库同步到第 3 方数据库。由于我的云函数使用对第 3 方 API 的调用,因此我想将 api 调用参数化为输入,以便在测试时使用依赖注入。我能想到的唯一方法基本上是将云函数放在常规函数中,即:
function foo(apiCall = api) {
exports.bar =
functions.firestore.document(doc_name).onCreate(snapshot => apiCall(snapshot));
return exports.bar
}
foo();
当我尝试使用 firebase deploy --only functions 进行部署时,我被告知 firebase 在本地源代码中看不到这些功能。
我还尝试过类似无效的方法:
function foo(apiCall = api) {
return functions.firestore.document(doc_name).onCreate(snapshot => apiCall(snapshot));
}
exports.bar = foo();
当我将exports.bar 放在函数之外时,它可以正常部署。
这是我第一次使用 Firebase,所以我不太熟悉语法等,但我不知道为什么用常规函数包装云函数不起作用 - 有什么建议吗?
【问题讨论】:
标签: javascript node.js firebase google-cloud-firestore google-cloud-functions