Firebase: как вызвать функцию https.onCall node.js? - PullRequest
1 голос
/ 06 ноября 2019

Согласно документации Firebase, следующий код может использоваться для вызова функции onCall с именем addMessage .

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. функции это не функция

Что я делаю не так?

Ответы [ 2 ]

3 голосов
/ 07 ноября 2019

firebase.functions() метод приходит из firebase/functions пакета, а не из firebase или firebase-functions.

const firebase = require('firebase/app');
require('firebase/functions');
const firebaseConfig = {<YOUR_CONFIG_HERE>};
const app = firebase.initializeApp(firebaseConfig);
const functions = app.functions();
0 голосов
/ 06 ноября 2019

Похоже, вы не включили клиентский SDK Cloud Functions в ваше веб-приложение. В зависимости от того, как вы включаете другие SDK Firebase, вам может понадобиться сделать то, что Phani связал с , или включить его в другой (например, <script src="https://www.gstatic.com/firebasejs/7.2.3/firebase-functions.js"></script>).

Процесс описан в документации по настройке среды разработки клиента .

...