为什么我的谷歌云功能无法识别依赖项?

时间:2021-07-21 16:47:51

标签: firebase google-cloud-firestore google-cloud-functions

我正在尝试实现一个谷歌云功能来搜索我的 Firestore 数据库中的文本。我正在关注的示例在这里:https://firebase.google.com/docs/firestore/solutions/search?provider=algolia。当我尝试部署我的函数时,出现以下错误:

ReferenceError: algoliasearch is not defined

我尝试运行成功执行的 npm install algoliasearch 但是我得到了同样的错误。

这是位于我的函数文件夹中的 package.json 文件中的依赖项:

"dependencies": {
    "@google-cloud/vision": "^2.3.7",
    "algoliasearch": "^4.10.3",
    "bad-words": "^3.0.4",
    "child-process-promise": "^2.2.1",
    "firebase-admin": "^9.8.0",
    "firebase-functions": "^3.14.1",
    "mkdirp": "^1.0.4"
  },

这是导致错误的代码:

// Initialize Algolia, requires installing Algolia dependencies:
// https://www.algolia.com/doc/api-client/javascript/getting-started/#install
//
// 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_SEARCH_KEY = functions.config().algolia.search_key;

const ALGOLIA_INDEX_NAME = 'usernames';
const client = algoliasearch(ALGOLIA_ID, ALGOLIA_ADMIN_KEY);

algoiasearch 不是用户定义的函数。

2 个答案:

答案 0 :(得分:2)

看起来您根本没有导入/需要 algoliaSearch。您的函数代码应该在顶部有类似

const algoliaSearch = require('algoliasearch')
// ...rest of your code

参见指南 https://www.algolia.com/doc/api-client/getting-started/instantiate-client-index/

答案 1 :(得分:1)

根据MDN

<块引用>

当引用不存在的变量时,ReferenceError 对象表示错误。

因为您没有像文档那样导入它,所以也缺少导入。

import algoliasearch from "algoliasearch"