web-dev-qa-db-ja.com

クラウド機能をローカルでテストできません。エミュレータはTypeErrorで起動できません:_onRequestWithOptsは関数ではありません

プロジェクトのfunctionsディレクトリからローカルテスト用のシェルを起動しようとすると、エミュレーターは起動しますが、関数を読み込めません。

「npm run build」を実行しても、エラーは発生しません。何が起こっている?

Functionsディレクトリを削除して、firebase-tools cliを使用して再度作成しようとしましたが、それでも同じエラーが発生します。管理者の資格情報もエ​​クスポートしました。

私は、firebase-tools CLIから生成されたindex.tsファイルで作成されたデフォルトのメソッドを使用しています。

import * as functions from 'firebase-functions';
import * as admin from 'firebase-admin';

admin.initializeApp();
// // Start writing Firebase Functions
// // https://firebase.google.com/docs/functions/TypeScript
//
export const helloWorld = functions.https.onRequest((request, 
response) => {
 response.send("Hello from Firebase!");
});

エミュレータがテストのために関数のインスタンスを起動することを期待していますが、代わりに次のエラーが表示されます。

✔  functions: Emulator started at http://localhost:5001
⚠  TypeError: _onRequestWithOpts is not a function
at Object.httpsProvider._onRequestWithOpts (/usr/local/lib/node_modules/firebase-tools/lib/emulator/functionsEmulatorRuntime.js:278:24)
at Object.httpsProvider.onRequest (/usr/local/lib/node_modules/firebase-tools/lib/emulator/functionsEmulatorRuntime.js:283:34)
at Object.<anonymous> (/Volumes/G-DRIVE mobile USB-C/CLEAN UP/Documents/code_bank/TypeScript/theincrowdapp/functions/lib/index.js:9:38)
at Module._compile (internal/modules/cjs/loader.js:776:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:787:10)
at Module.load (internal/modules/cjs/loader.js:653:32)
at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
at Function.Module._load (internal/modules/cjs/loader.js:585:3)
at Module.require (internal/modules/cjs/loader.js:690:17)
at require (internal/modules/cjs/helpers.js:25:18)
⚠  We were unable to load your functions code. (see above)
   - It appears your code is written in TypeScript, which must be compiled before emulation.
   - You may be able to run "npm run build" in your functions directory to resolve this.
13
kreshendo

Firebasefunctionをバージョン3.0.0にダウングレードします

0
Elijah Corleone

node_modulesを削除してからnpm installnpm install firebase-adminおよびnpm install firebaseを実行します[email protected]