モバイルサイトへのFirebaseのみのアプローチを実現したかったので、アプリへのシンプルなAPIゲートウェイを作成して、外部APIを呼び出す代わりにクラウド関数エンドポイントを呼び出し、APIキーを公開することにしました。
私は単純なhello worldの例に従って、大丈夫でした。
Googleのサンプルに記載されているように(translateおよびurl Shorteningの例から)request-promiseモジュールを追加するとすぐに、先に進むことができません。これが発生するためです。
Error parsing triggers: Cannot find module 'request-promise'
「リクエスト」モジュールでテストした結果は同じです。
私のindex.jsは本当にシンプルです
const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp(functions.config().firebase);
const request = require('request-promise');
// Create and Deploy Your First Cloud Functions
// https://firebase.google.com/docs/functions/write-firebase-functions
exports.wxData = functions.https.onRequest((request, response) => {
wwurl = "https://mycurrentendpoint.com/apicall.php?key=1234567890&lat="+request.query.lat+"&lon="+request.query.lon;
response.send(wwurl);
});
現在const request = require( 'request-promise');またはconst request = require( 'request');を使用せずにデプロイすると、URLが表示され、呼ばれた。
本当に何をすべきかわからない、私はすでに新しいプロジェクトの作成をテストし、これを発行するだけです
これは私のpackage.jsonコンテンツです:
{
"name": "functions",
"description": "Cloud Functions for Firebase",
"scripts": {
"serve": "firebase serve --only functions",
"Shell": "firebase experimental:functions:Shell",
"start": "npm run Shell",
"deploy": "firebase deploy --only functions",
"logs": "firebase functions:log"
},
"dependencies": {
"firebase-admin": "~5.4.2",
"firebase-functions": "^0.7.1"
},
"private": true
}
これをFirebaseクラウド関数に実装するのは難しいですか?
ご協力いただきありがとうございます。
Cloud Functionでnpmモジュールを使用する場合は、cd
をfunctionsディレクトリに移動し、コマンドnpm install request-promise
またはモジュールの名前が付けられているものを実行します。これにより、package.jsonファイルにモジュールが追加されます。次に、firebase deploy
を実行すると、Googleのクラウドで実行されているコードでモジュールを使用できるようになります。 package.jsonにリストされていないモジュールを使用しようとすると、コードは失敗します。
同じ問題があり、requestとrequest-promiseの両方をインストールして修正しました。関数が存在するディレクトリに移動して実行します。
npm install --save request request-promise
--saveは、package.jsonの更新を処理します。その後、再デプロイすると機能するはずです。
インストールされていないため、リクエストの約束を見つけることができません。これはfirebaseとは別なので、package.jsonに追加する必要があります。リクエストライブラリも追加します。
以下の2行を依存関係に追加し、npmインストールを実行します。
"request": "^2.x",
"request-promise": "^1.x"
最初の変更ディレクトリ
1)cd functions
次にnpmパックをインストールします
2)npm install request-promise
//私にはうまくいきませんでしたが、試すことができます。
3)npm i child-process-promise
//うまくいきました!
child-process-promise npmパッケージリンク
最後に、実行できます:
4)firebase deploy