【问题标题】:Firebase cloud function cannot deploy functions that call a separate local functionFirebase 云函数无法部署调用单独本地函数的函数
【发布时间】:2017-10-03 07:42:44
【问题描述】:

在文档https://firebase.google.com/docs/cli/?authuser=0#partial_deploys的上下文中

functions/index.js 里面我们有

var functions = require('firebase-functions');

exports.groupA = {
  function1: functions.https.onRequest(...);
  function2: functions.database.ref('\path').onWrite(...);
}
exports.groupB = require('./groupB);

然后在functions/groupB.js 里面我们有:

var functions = require('firebase-functions');

exports.function3 = functions.storage.object().onChange(...);
exports.function4 = functions.analytics.event('in_app_purchase').onLog(...);

但是,在我的情况下,在 groupB.js 内部,我有另一个 exports.function5 调用另一个函数 local_function insdie groupB.js

exports.function5 = admin.database.ref(....).onCreate(
event=>{
return local_function()
})

function local_function()
{
return new Promise((resolve,reject)=>{
...
}
}

这未能部署到云功能。

【问题讨论】:

  • 确切的错误代码是什么?你试过多次了吗?
  • ⚠ 函数:未能创建函数 FUNCTION_NAME ⚠ 函数:HTTP 错误:400,请求有错误是的,多次。
  • 那么如果你把return local_function换成return 1就没有错误了?
  • 实际上,在我更改了函数的名称后,一切都开始工作了。所以本地函数不是问题。

标签: javascript firebase google-cloud-functions


【解决方案1】:

这真的没有意义:

exports.function5 = admin.database.ref(....).onCreate(event=>{
    return local_function
})

它返回一个函数,这对 Cloud Functions 没有帮助。我认为您可能打算返回调用 local_function 的结果:

exports.function5 = admin.database.ref(....).onCreate(event=>{
    return local_function()
})

这应该调用local_function 并返回它返回的承诺。

【讨论】:

  • 是的,完全正确。我的意思是返回一个承诺。部署问题最终通过重命名函数得到解决。谢谢。
猜你喜欢
  • 2020-01-28
  • 1970-01-01
  • 1970-01-01
  • 2019-01-18
  • 2021-05-06
  • 1970-01-01
  • 2021-03-30
  • 2021-01-21
  • 1970-01-01
相关资源
最近更新 更多