Algolia的Firebase函数返回未定义

时间:2020-07-27 13:26:52

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

我正在关注有关如何使用Firebase实施Algolia的Firebase教程:https://firebase.google.com/docs/firestore/solutions/search

由于我有来自firebase云功能日志的错误,因此我目前停留在本教程的索引编制部分。 这是云功能日志的输出 enter image description here

这是我写的代码

const functions = require('firebase-functions');

const algoliasearch = require("algoliasearch");

const ALGOLIA_ID = functions.config().algolia.app;
const ALGOLIA_ADMIN_KEY = functions.config().algolia.key;
const ALGOLIA_SEARCH_KEY = functions.config().algolia.search_key;

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

// Update the search index every time a blog post is written.
exports.onUserCreated = functions.firestore.document('organisations/40R0LMA6ALZgF7KjHJMc/employees/{userId}').onCreate((snap, context) => {
    // Get the note document
    const user = snap.data();
  
    // Add an 'objectID' field which Algolia requires
    user.objectID = snap.id;
    console.log(user.objectID)
  
    // Write to the algolia index
    const index = client.initIndex(ALGOLIA_INDEX_NAME);
    return index.saveObject(user);
  });

1 个答案:

答案 0 :(得分:2)

似乎您没有正确设置本示例中使用的不同环境变量。

doc中所述,要在执行algolia.app时获取const ALGOLIA_ID = functions.config().algolia.app;环境变量的值,您需要预先按如下所示设置其值:

firebase functions:config:set algolia.app="THE_ALGOLIA_ID" 

由于需要设置多个变量,因此可以在一条指令中进行设置,如下所示:

firebase functions:config:set algolia.app="THE_ALGOLIA_ID"  algolia.key="THE_ALGOLIA_ADMIN_KEY" ...

如文档中所述,“要检查项目的环境配置中当前存储的内容,可以在CLI中使用firebase functions:config:get”。