コマンドfirebase deployを実行すると、次のエラーが表示されます。
機能を展開する
i機能:必要なAPIが有効になっていることを確認する...
i runtimeconfig:必要なAPIが有効になっていることを確認します...
✔runtimeconfig:必要なすべてのAPIが有効になっています
✔機能:必要なすべてのAPIが有効になっています
i機能:アップロード用の機能ディレクトリの準備...
i関数:アップロード用のパッケージ化された関数(4.04 KB)
✔機能:機能フォルダーが正常にアップロードされました
リリースプロセスを開始しています(数分かかる場合があります)...
i関数:関数followerNotificationの作成...
⚠functions:function followerNotificationの作成に失敗しました
機能:HTTPエラー:400、リクエストにエラーがあります
⚠functions:1つの関数を展開できませんでした。
機能のデプロイにエラーがありました。他の機能(データベースなど)の展開を続行するには、次を実行します:firebase deploy --except functions
エラー:関数は適切にデプロイされませんでした。
問題がありますか? firebase deploy --helpをお試しください
他のすべては問題なく動作します。 Firebase Firestoreで何かを作成しようとしたときのみ。
これは私にも起こっていたので、2番目のレベルでは、firestoreはドキュメントのみを許可し、コレクションは許可しないことに気付きました。
私はこの道を聞こうとしていました:
/collection/document/{wildcard}
あなたは次のようなことをすることができます
/collection/{wildcard}
または
/collection/document/collection/{wildcard}
私もこの問題を抱えていました。私の場合、トリガーパスにドキュメントパスの末尾のスラッシュが含まれていたためです。
だから変更:
functions.firestore
.document('some_path/{pushId}/')
に:
functions.firestore
.document('some_path/{pushId}')
私のためにそれを修正しました。これはさまざまな問題によって引き起こされているようで、firebase cliはその理由を説明するのに良い仕事をしていません。
問題は、次のようなドキュメントではなく、コレクションのみを参照することです。
exports.myFunctionName = functions.firestore
.document('users/marie').onWrite((event) => {
// ... Your code here
});
次のようにドキュメントを参照する必要があります。
exports.myFunctionName = functions.firestore
.document('users/marie').onWrite((event) => {
// ... Your code here
});
次のようなワイルドカードを使用することもできます。
exports.myFunctionName = functions.firestore
.document('users/{userId}').onWrite((event) => {
// ... Your code here
});
ここで説明されています: https://firebase.google.com/docs/functions/firestore-events
私が助けてくれることを願っています
この問題は、おそらく関数名の長さが原因でした。
したがって、名前が次の場合:
myFunctionsFromWorksWithCustumersTiggersTests
次のような短い名前に変更します。
WorkWithCustumers
お役に立てば幸いです。
Okejこれはあなたが見る必要があるものです。
あなたが持っているので
exports.yourFunctionName = functions.firestore.document
見る必要があるのは.document
あなたのパス[〜#〜] must [〜#〜]コレクションではなくドキュメントを指します。
そのため、これは動作しません:
/level1/{level1Id}/level2
<-コレクションを指します
これ動作します:
/level1/{level1Id}/level2/{level2Id}
クラウド関数は、documentにactionがある場合に検索します
これが誰にも役立つことを願っています
関数名を次のように変更するまで、同じエラーが発生していました
create_template_
に
create_new_template
関数名の最後にある「_」(アンダースコア)がこのエラーを引き起こした可能性があります。
エクスポート関数名の先頭にアンダースコアがあるため、これを経験しました。これを試して自分でテストできます:
exports._someLongNameWithUnderscore= functions.auth.user().onCreate(user => {
return true;
});
exports.someLongNameWithoutUnderscore= functions.auth.user().onCreate(user => {
return true;
});
exports.shortName= functions.auth.user().onCreate(user => {
return true;
});
開始または終了にアンダースコアがあるものはHTTP:400
で失敗し、他のものはデプロイされます。
Cloud pub/subをリッスンする関数を公開しようとしたときに、数字で始まる同じエラーが発生しました。
exports.nightly_pruning = functions.pubsub.topic('24hr-tick').onPublish((event) => {
...
});
名前を変更するだけで修正しました:
exports.nightly_pruning = functions.pubsub.topic('nightly-tick').onPublish((event) => {
...
});
(上記のニコライ・ヘーゲルスタッドに感謝します。コメントする評判はありません。)
これは、間違ったNodeバージョンを使用している場合にも発生する可能性があります。消えた。
リンターがリスナー宣言で改行を拒否することも指摘したかっただけです。
exporst.myFunc = functions.firestore
.document('collection/{uid}')
.onEvent(...)
リンターはあまり役に立たず、ドキュメントでカバーされていません(通常どおり)
同じエラーメッセージに関する私の問題は、Cloud Functionsのpubsubは数字で始まる名前のトピックをサポートしていないように見えることでした。