带有 Firebase 的 Algolia 的 TypeError [ERR_HTTP_INVALID_HEADER_VALUE]

TypeError [ERR_HTTP_INVALID_HEADER_VALUE] for Algolia with Firebase

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

我目前卡在教程的索引部分,因为我有来自 firebase cloud-functions 日志的错误。

错误是:TypeError [ERR_HTTP_INVALID_HEADER_VALUE]:header“x-algolia-api-key”[=13= 的无效值“未定义” ]

我该如何解决这个错误?

这是我的代码

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

const algoliasearch = require("algoliasearch");

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 = '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('path').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);
  });

显然您的 ALGOLIA_IDALGOLIA_ADMIN_KEY 值未定义。 您尝试使用函数环境配置中的值,但它似乎不存在。

在终端中转到您的 firebase 项目文件夹并键入

firebase functions:config:get

您应该会看到类似于 JSON 对象的输出。如果您没有看到 algolia 设置,请这样设置:

firebase functions:config:set algolia.app_id="YOUR APP ID" algolia.api_key="YOUR API KEY" algolia.search_key="YOUR SEARCH KEY"

更多信息在这里: https://firebase.google.com/docs/functions/config-env