2017-04-09 9 views
1

firebase-queueワーカーを変換してクラウド機能にプッシュ通知を送信しようとしています。私はnode-apnを使用して、iOSデバイスにプッシュ通知を送信しています。私はkey.pemファイルとcert.pemファイルを指定する必要がある接続を設​​定する必要があります。これらのファイルは、ワーカーjsファイルが存在し、問題なく動作するのと同じ場所に存在します。私は、クラウド機能にコードの上に移動しますが、私は以下クラウド機能のpemファイルの参照

{ 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ファイルは機能と一緒に出荷されていないことだと思います。

どのようにクラウド機能でこのようなファイルを指定できますか?

+0

どれ運? – BausTheBig

+0

私はまだこの問題を回避するための何かを発見していないし、ファイアベースのチームから誰も提案を与えていないことに少し失望しています。私はしばらくの間、私のキューワーカーに頼っています。 –

+0

とにかく答えてくれてありがとう。 – BausTheBig

答えて

1

あなたのパス参照は、ファイヤーベース機能では正しくありません。

それは次のようになります。まだこれで

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

答えをありがとう。私もこれを試してみます。 firebase関数のドキュメンテーションを見たときに '__dirname'を使用することについての参照が見つかりませんでした。ドキュメントとfirebase関数サンプルを検索しただけです。https://github.com/firebase/functions-samplesと表示されません。 '__dirname'への参照。私と他の人の利益のためにこの変更の参照を共有することは可能でしょうか?ありがとう! –

+1

うまくいけば、これはあなたの理由を説明するはずです:https://stackoverflow.com/questions/8131344/what-is-the-difference-between-dirname-and-in-node-js – user2895001

+0

ありがとうstackoverflowの質問。今日何か新しい、重要なことを学びました。私は私の現在の割り当てを中止することができないので、あなたが提案した変更をテストすることができなかったことを謝罪します。 –

関連する問題