2

firebaseデータベースを使用しています。クラウド機能(トリガー)を使用してREST node.js Webサービスと通信します。Firebaseクラウド機能がPOSTリクエストを行う

トリガーはすでに作成されていますが、クラウド機能がホストされたマシンにある外部Webサービスを呼び出すようにしたいと考えています。

jQueryをインポートしました。しかし、それは$。ポストは関数ではないと言います。私はそれがスリムなバージョンが何とか(ケースではない)インストールされているためだろうと思った。それから私は機能も

ReferenceError: XMLHttpRequest is not defined at /user_code/index.js:91:19 at process._tickDomainCallback (internal/process/next_tick.js:129:7)

を言うのXMLHttpRequestを使用して、JavaScriptで直接それを実行しようとしましたあなたはfirebaseクラウド機能のPOST要求を行うためにどのように任意の手掛かりを持っていますか?

+0

私は同じエラーで同じことをやろうとしてきました。 npmパッケージでも試してみました:request、request-promise、superagent。これらを使用すると、常にgetaddrinfoでエラーが発生します。ENOTFOUND – Arkelyan

+0

は、私が無償のアカウントからテストしていたため、getaddrinfo ENOTFOUNDが起こっていました。リクエスト&約束の仕事を有料アカウントの場合 - 火のプラン – Arkelyan

+0

私は同じ状況にあった、明らかに無料版は、Googleサービスへの発信を許可しています。 –

答えて

1

外部のウェブサイトにPOSTするためには、有料のfirebaseプラン(おそらくBlaze)を使用する必要があります。 https://stackoverflow.com/a/42775841/6480950

npmモジュールを使用すると、&リクエストを約束できます。

基本テスト: https://stackoverflow.com/a/43645498/6480950

+0

ありがとうございました:)これはドキュメント内のもので、私が理解した請求価格を確認した後でなければならないためです。Dありがとう –

0

Firebase Cloud FunctionsはNode.js環境です。しかし、jQueryはクライアント側のjavascriptライブラリです。いくつかのサーバー側のjQueryビルド(Cheerio、nodeQuery)があります:Can I use jQuery with Node.js?

しかし、私はそうです。 。 。

ノードモジュールxmlhttprequestを使用してみます。クライアント側のJavaScriptと同じように、生のリクエストを書くことができます。あなたはpackage.jsonファイルIEでその依存関係が必要になります:

"dependencies": { 
    "xmlhttprequest": "^1.8.0" 
} 

次に、あなたの機能に:

var XMLHttpRequest = require("xmlhttprequest").XMLHttpRequest; 

var request = new XMLHttpRequest(); 
request.addEventListener('load', doSomethingWithDataFromResponse); 
request.open("GET","http://urlToMyServer"); 
request.send(); 

function doSomethingWithDataFromResponse() { 
    var data = this.responseText; 
    //etc. 
} 

のようなPOST何かのために:私は「方法です

var request = new XMLHttpRequest(); 
var params = "word=foo"; //or stringify some JSON 
request.addEventListener('load', doSomethingWithDataFromResponse); 
request.open("POST","http://urlToMyServer"); 
request.setRequestHeader('Content-type', 'application/x-www-form-urlencoded'); // or application/json etc. 
request.send(params); 

最近、ノードサーバーから他のサードパーティのサーバーに要求を行っています。私はまだFirebaseで試してみる機会はありませんでしたが、すべての文書がそれがうまくいくはずであることを示しています。

+0

ローカルホストのthoでも、私はablleを使用してnode.jsへのJQueryをインポートすることができます。Google Cloudの機能の中で、私はそれらをインポートできませんでした。パッケージが定義されていないと常に言っていました。私の解決策 –

関連する問題