次の手順に従いました。
Firebase CLI(コマンドラインインターフェイス)にはNode.jsおよびnpmが必要です。これらは https://nodejs.org/ の指示に従ってインストールできます
Node.jsとnpmをインストールしたら、npmからFirebase CLIをインストールします。npm install -g firebase-tools
プロジェクトを初期化します。
a。実行firebase login
ブラウザ経由でログインし、firebaseツールを認証します。
b.Firebaseプロジェクトディレクトリに移動するか、ディレクトリを作成します
c。 firebase init関数を実行する
関連するFirebaseプロジェクトを選択します
Y
を選択して、npmで依存関係をインストールします
ディレクトリ設定ファイヤーベース機能に移動する
編集index.js
作成した関数を含むファイル
firebase use --add
Firebaseプロジェクトを追加するには
実行firebase deploy --only functions
関数をデプロイします
このすべての後、デプロイが完了した端末にメッセージが表示されますが、Firebaseコンソールでは、[関数]タブをクリックすると関数がリストされません!?
クイックヒント:デプロイしようとしている関数をindex.jsファイルでエクスポートしていることを確認してください。 Firebaseプロジェクトはデプロイされますが、クラウド関数はエクスポートされない限り利用できません。
ステップ7では、サンプル関数のコメントを外してファイルを保存する必要があります。次に、deployコマンドの出力で、作成されたhelloWorld関数のURLが提供されます。
デフォルト関数のコメントを外した後、必ずファイルを保存してから使用してください
firebase deploy
私はまったく同じ問題を抱えていたので、すべての関数を含むindex.jsファイルがプロジェクトフォルダー内の「関数」フォルダーに保存されるようにすることで解決しました。私はvsコードを使用しているので、ファイル/名前を付けて保存をクリックし、正しいフォルダを選択しました。
少なくともバージョン3.5.0
またはfirebase-tools
を実行していることを確認してください。使用しているバージョンを確認するには、次を実行します。
firebase --version
デフォルトのセットアップを実行している場合、次を使用してfirebase-tools
を更新できます。
npm install -g firebase-tools
Google Node.jsクライアントライブラリバージョン1移行ガイドのアクションから ---を実行しながら、最近同じ問題を経験しました。 Node.jsクライアントライブラリV2(これは非常にお勧めです)何が起こっているのかを理解するのに時間がかかりました。で、私は本当に問題が何であるか理解できませんでした!だからここに私がやったことがあり、それは私のために働いた:
クラウド機能の backup copy (_index.js
_)と、おそらく_package.json
_があることを確認します(念のために、どのパッケージを思い出したくない場合があります)以前にインストールしたことがあります-時々迷惑になる可能性があります)。
Delete functionsディレクトリ全体プロジェクトフォルダーから。
_firebase init
_を使用してfirebase CLIを再起動し、 Functions を選択します
クラウド関数が initialized になったら、CDを関数フォルダーに入れ、 Redeploy を使用して_firebase deploy --only functions
_を使用します。
すべてが well ????になったら、 firebaseダッシュボードコンソールに機能が展開されているはずです。
N.B: Googleは最近、多くの新機能を備えたNode.js Client Library version 2 (v2)
を2018年4月16日にリリースしました。 2018年4月16日以降、 Actions on Googleの新機能はクライアントライブラリのv1 に追加されなくなります。新しい機能を使用する場合は、 v2クライアントライブラリに移行する必要があります。
また、 v1クライアントライブラリはDialogflow v2 をサポートしていません。 Dialogflow v2の機能が必要な場合は、クライアントライブラリのv2に移行する必要もあります。
お役に立てれば ????。
Firebase initで「デフォルトプロジェクト」を確認します。類似した名前のいずれかを選択すると、私の間違いでした。 ;)
1)index.jsファイルでデプロイしようとしている関数をエクスポートしていることを確認してください。
2)ファイル(index.js)の先頭に「use-strict」と記述し、コンソールを使用して関数をデプロイします
同じ状況がありました。問題は、私がやっていたときに
$ firebase deploy --only "myFunction"
そのフィルター名:myFunction
は、デプロイしようとしていた関数の名前とまったく同じではありませんでした。愚かな間違いですが、気づくまでに1日かかりました...
1つの問題を明確にするために、functions
フォルダー内のindex.js
ファイルは、同じファイル内で作成された関数をエクスポートする必要があるように見えます(Franが言ったことと同様)。
ファイルをサブフォルダーに整理しようとすると、Firebase関数では正しく機能しないようです。firebase serve
を使用してローカルでテストする場合と同じルールが適用されます(functions/index.js
内にコードを作成する必要があります)。
これが誰かを助けることを願っています!