Получение данных из pubsubMessage в Google Cloud Function - PullRequest
0 голосов
/ 27 января 2020

С сервера node.js Я пытаюсь отправить данные в Pub / Sub topi c и затем запустить облачную функцию, как только она сработает.

Я успешно отправляю сообщения в Pub / Sub, однако, когда я пытаюсь интерпретировать данные в функции, я получаю сообщение об ошибке «Телеметрические данные не предоставлены» - см. Нижеприведенную функцию.

Я получаю следующее: https://github.com/GabeWeiss/GoogleIoTCoreApp/tree/master/gcf/telemetryToFirestore

Вот как я это называю (это работает):

const pubsub = new PubSub();
const topicName = 'topixXx';    
const dataJ = JSON.stringify([{"temperature": 1}, {"bpm": 2}]); 
const dataBuffer = Buffer.from(dataJ);
const messageId = pubsub.topic(topicName).publish(dataBuffer);      
res.end(`Message ${messageId} published.`);

А вот CGF (я вырезал часть функции, в данном случае она не нужна):

const admin = "...";
admin.initializeApp();
var db = "..";

exports.telemetryToFirestore = (event, callback) => {
const pubsubMessage = event.data;
throw new Error("pubsubMessage.data: "+pubsubMessage.data);
    if (!pubsubMessage.data) {
         throw new Error('No telemetry data was provided!');
     }
const payload = Buffer.from(pubsubMessage.data, 'base64').toString();
const telemetry = JSON.parse(payload);


db.collection(......)
callback(.....);
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...