0
votes

I am trying to publish a json message to pubsub topic from firebase cloud function, i am using pubsub version 0.19.0.

i am getting this error:

google/pubsub/v1/pubsub.proto could not be found in /protos
    at Function.GrpcClient._resolveFile (/srv/node_modules/google-gax/lib/grpc.js:174:9)
    at GrpcClient.loadProto (/srv/node_modules/google-gax/lib/grpc.js:162:33)
    at new PublisherClient (/srv/index.js:6842:15)
    at PubSub../node_modules/@google-cloud/pubsub/src/index.js.PubSub.getClient_ (/srv/index.js:3985:17)
    at PubSub../node_modules/@google-cloud/pubsub/src/index.js.PubSub.request (/srv/index.js:4006:8)
    at Publisher../node_modules/@google-cloud/pubsub/src/publisher.js.Publisher.publish_ (/srv/index.js:4404:14)
    at ontimeout (timers.js:482:11)
    at tryOnTimeout (timers.js:317:5)
    at Timer.listOnTimeout (timers.js:277:5)

here is my code:

const pubsub = new PubSub();
const topic = pubsub.topic(PUBSUB_TOPIC_NAME);
const publisher = topic.publisher();
const dataBuffer = Buffer.from(JSON.stringify(req.body));
publisher
.publish(dataBuffer)
.then(messageId => {
  console.log(`Message ${messageId} published.`);
  res.status(200).send('Message published.');
})
.catch(err => {
  console.error('ERROR:', err);
  res.status(500).send(err);
  return Promise.reject(err);
});
1

1 Answers

0
votes

This error can be solved via installing the protos library:

pip install -U googleapis-common-protos

Note: The version of Pub/Sub that you are using is old. The current version is 0.39.0. Update: pip install -U google-cloud-pubsub