在云函数中引用pem文件

时间:2017-04-09 17:02:26

标签: javascript firebase google-cloud-functions

我正在尝试转换firebase-queue工作人员以向云功能发送推送通知。我正在使用node-apn向iOS设备发送推送通知。它需要设置连接,这需要我指定key.pem文件和cert.pem文件。这些文件存在于worker js文件所在的相同位置,并且没有任何问题。我将代码移到云功能但我在日志控制台中收到此错误

{ Error: ENOENT: no such file or directory, open './cert.pem'
    at Error (native)
  errno: -2,
  code: 'ENOENT',
  syscall: 'open',
  path: './cert.pem' } 'Unable to send push notification to iOS device. Socket Error'

以下是如何指定文件以及如何在代码中创建连接

var connectionOptions = {
  cert:'./cert.pem',
  key:'./key.pem',
  production: true
};

var apnConnection = new apn.Connection(connectionOptions);

我已尝试将证书文件指定为./cert.pemcert.pem,但在这两种情况下我都遇到了类似的错误。我想问题是.pem文件不随函数一起发货。

如何在云功能中指定此类文件?

1 个答案:

答案 0 :(得分:2)

您的路径引用对于firebase功能来说并不合适。

应该是:

var connectionOptions = {
  cert:__dirname + '/cert.pem',
  key:__dirname + '/key.pem',
  production: true
};