Firestoreで新しい文書が作成されるたびにAlgolia Searchインデックスを更新するクラウド機能を導入しようとしています。すべてがうまく始まると思われますが、最後にエラーが発生します。私はドキュメントを読んできましたが、構文が正しいように感じるので、この時点で何をすべきか分かりません。クラウド機能は、何を指していませんログインして、ちょうど私がエラーコレクションの名前にスペースを含むFirestore関数を展開する
エラーメッセージの下に受信したエラーエコー:
=== Deploying to 'test-ffdbb'...
i deploying functions
i functions: ensuring necessary APIs are enabled...
i runtimeconfig: ensuring necessary APIs are enabled...
+ runtimeconfig: all necessary APIs are enabled
+ functions: all necessary APIs are enabled
i functions: preparing functions directory for uploading...
i functions: packaged functions (1.25 KB) for uploading
+ functions: functions folder uploaded successfully
i functions: updating function onProductCreated...
! functions[onProductCreated]: Deployment error.
Failed to configure trigger providers/cloud.firestore/eventTypes/[email protected] (onProductCreated)
マイコード:
const functions = require('firebase-functions');
const algoliasearch = require('algoliasearch');
// App ID and API Key are stored in functions config variables
const ALGOLIA_ID = functions.config().algolia.app_id;
const ALGOLIA_ADMIN_KEY = functions.config().algolia.api_key;
const ALGOLIA_INDEX_NAME = "Firestore";
const client = algoliasearch(ALGOLIA_ID, ALGOLIA_ADMIN_KEY);
// Update the search index every time a blog post is written.
exports.onProductCreated = functions.firestore
.document("Product Catalog/{id}")
.onCreate(event => {
const product = event.data.data();
product.objectID = event.params.postId;
const index = client.initIndex(ALGOLIA_INDEX_NAME);
return index.saveObject(product);
});
パッケージを。 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": {
"@google-cloud/firestore": "^0.8.2",
"algoliasearch": "^3.24.5",
"firebase-admin": "~5.4.2",
"firebase-functions": "^0.7.1"
},
"private": true
}
私のFirestoreでは、「Product Catalog」というタイトルのコレクションがあります。そのため、私はそれをそのように参照しています。あなたがコンソールでそれを行うことはできますが、あなたはそれを逆に参照することはできません。関数はデプロイされましたが、実行されていないので、{id}と関係があると思います。私はそれを個別にトラブルシューティングします。助けてくれてありがとう! – RomeNYRR
私のパスには「/」がありませんでした。この答えは正しい方向に向いています。 – Doug
また、誤ってドキュメントパスからオブジェクトのコレクションまたはプロパティを参照しようとすると、同じエラーがスローされます。 – Doug