URL-адрес вызова функций Google Cloud, размещенный на Google App Engine - PullRequest
0 голосов
/ 27 сентября 2018

У меня есть база данных firebase, для которой я хочу создать облачную функцию, которая запускается при добавлении дочернего узла к родительскому узлу, который должен вызывать URL с параметрами дочернего узла, добавленными в родительский узел.

URL, который будет называться, - это приложение NodeJS Express, размещенное в Google App Engine.

Как мне это сделать, если это вообще возможно?

1 Ответ

0 голосов
/ 27 сентября 2018

Для этого вы можете использовать библиотеку node.js request .

Поскольку внутри облачной функции вы должны возвращать Promise при выполнении асинхронных задач, вам нужно будет использоватьинтерфейсная оболочка для запроса, например request-обещание .

. Вы можете сделать что-то вроде этого:

.....
var rp = require('request-promise');
.....

exports.yourCloudFucntion = functions.database.ref('/parent/{childId}')
    .onCreate((snapshot, context) => {
      // Grab the current value of what was written to the Realtime Database.
      const createdData = snapshot.val();

      var options = {
          url: 'https://.......',
          method: 'POST',
          body: ....
          json: true // Automatically stringifies the body to JSON
      };

      return rp(options);

    });

Если вы хотите передать параметры вHTTP / S / службу / конечную точку, которую вы вызываете, вы можете сделать это через тело запроса, например:

      .....
      const createdData = snapshot.val();

      var options = {
          url: 'https://.......',
          method: 'POST',
          body: {
              some: createdData.someFieldName
          },
          json: true // Automatically stringifies the body to JSON
      };
      .....

или через несколько пар ключ-значение строки запроса, например:

      .....
      const createdData = snapshot.val();
      const queryStringObject = { 
         some: createdData.someFieldName,
         another: createdData.anotherFieldName
      };

      var options = {
          url: 'https://.......',
          method: 'POST',
          qs: queryStringObject
      };
      .....
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...