Firebase:如何调用https.onCall函数node.js?

时间:2019-11-06 19:50:34

标签: javascript node.js firebase google-cloud-platform google-cloud-functions

根据Firebase的文档,以下代码可用于调用名为 addMessage 的onCall函数。

var addMessage = firebase.functions().httpsCallable('addMessage');
addMessage({text: messageText}).then(function(result) {
    // Read result of the Cloud Function.
    var sanitizedMessage = result.data.text;
})

我有一个名为 test 的函数,并使用Javascript编写了以下代码(仅用于测试此功能):

exports.test = functions.https.onCall((data, context) => {
  console.log(data);
  data.page++;
  console.log(data);

  var testing = firebase.functions().httpsCallable('test');

  while(data.page < 5) {
    testing({page: data.page}).then(res => {
    console.log("done");
    })
  }
});

但是,运行此命令时,出现以下错误:

  

未处理的错误TypeError:firebase.functions不是函数

我在做什么错了?

2 个答案:

答案 0 :(得分:3)

firebase.functions()方法来自firebase/functions软件包,而不来自firebasefirebase-functions

const firebase = require('firebase/app');
require('firebase/functions');
const firebaseConfig = {<YOUR_CONFIG_HERE>};
const app = firebase.initializeApp(firebaseConfig);
const functions = app.functions();

答案 1 :(得分:0)

您似乎没有在Web应用程序中包含客户端Cloud Functions SDK。根据您包括其他Firebase SDK的方式,您可能需要执行this guide或将其包含在其他Firebase SDK中(例如<script src="https://www.gstatic.com/firebasejs/7.2.3/firebase-functions.js"></script>)。

此过程在what Phani linked to的文档中进行了介绍。