3

今年初めに作成した Firebase プロジェクトがあります。Cloud Functions を使用して、Realtime Database でいくつかの操作を実行します。

昨日、 Callable Cloud Functionsについて知ったので、アプリで試して、既存の関数を更新する必要があるかどうかを確認することにしました。テスト用に単純な Cloud Function を作成しました。

exports.testCall = functions.https.onCall((data, context) =>{
    console.log(context.auth.uid);
    return {response:"This means success"};
});

しかし、この関数をデプロイしようとすると、次のエラーが発生します。

エラー: 関数トリガーの解析中にエラーが発生しました。

TypeError: functions.https.onCall は オブジェクトの関数ではありません。(/tmp/fbfn_7614ijhDwX0NY98S/index.js:114:36) Module._compile (module.js:649:30) で Object.Module._extensions..js (module.js:660:10) で Module.load ( module.js:561:32) で tryModuleLoad (module.js:501:12) で Function.Module._load (module.js:493:3) で Module.require (module.js:593:17) で require ( internal/module.js:11:18) オブジェクトの /usr/local/lib/node_modules/firebase-tools/lib/triggerParser.js:18:11 にあります。(/usr/local/lib/node_modules/firebase-tools/lib/triggerParser.js:32:3)

Callable Cloud Functions が最新の Firebase SDK で導入されたことを認識しているため、次を使用して更新を試みました。

sudo npm install -g firebase-tools

しかし、Cloud Function をまだデプロイできません。Firebase docsに示されているように、部分的な展開も試みましたが、うまくいきませんでした。ドキュメントに欠けているものはありますか?

4

1 に答える 1

8

プロジェクト ディレクトリの Cloud Functions SDK も更新する必要があるため、Firebase CLI を更新するだけでは問題は解決しません。Firebase プロジェクトは今年初めに初期化されたとおっしゃいましたが、それは Callable Cloud Functions のリリース前です。

Firebase プロジェクトで Cloud Functions を初期化するとfunctions、Cloud Functions SDK を含むディレクトリが作成されます。したがって、(おそらく) 古い SDK がfunctionsディレクトリに残っているため、更新する必要があります。これを行うには、そのディレクトリに移動して次のコマンドを実行します。

sudo npm i --save firebase-functions@latest
于 2018-03-22T20:10:44.447 に答える