我想将云火库数据发送到algolia以启用全文搜索。Firebase云功能日志显示了一个关于应用程序id的错误。我无法理解这个错误以及如何修复它。
name: 'RetryError',
message: 'Unreachable hosts - your application id may be incorrect. If the error persists, contact support@algolia.com.'
这是我的index.js文件
exports.addFirestoreDataToAlgolia =
functions.https.onRequest((req, res) => {
var arr = [];
admin.firestore().collection("tags").get()
.then((docs) => {
docs.forEach((doc) => {
let user = doc.data();
user.objectID = doc.id;
arr.push(user);
})
const client = algoliasearch(ALGOLIA_ID, ALGOLIA_ADMIN_KEY);
const index = client.initIndex(ALGOLIA_INDEX_NAME);
return index.saveObjects(arr, (err, content) => {
if (err) {
res.status(500);
}
else {
res.status(200).send(content);
}
})
})
.catch( err => {
console.log(err);
})
})
出站请求(谷歌服务之外(只能通过付费计划中的功能进行(https://firebase.google.com/pricing)。
出现错误的appID错误的原因是Algolia正试图使用您的appID解析dns,但失败了。看见https://github.com/algolia/algoliasearch-client-javascript/issues/587#issuecomment-407397688
你必须退出免费的Spark计划,才能从你的功能中呼叫Algolia。。
我在NextJS中也遇到了这个错误,它在react中运行得很好,但当我转到NextJS时,我遇到了错误。原来是我的.env变量没有正确传递到客户端/浏览器。根据NextJs文档,将变量从REACT_APP_<variable name>
重命名为NEXT_PUBLIC_<variable name>
,使其可用于浏览器,从而解决了此问题。
NEXT_PUBLIC_ALGOLIA_APP_ID=xxxxxx
NEXT_PUBLIC_ALGOLIA_API_KEY=xxxxxxxxxxxxxxxxxxxxxxxxxxxxx
NEXT_PUBLIC_ALGOLIA_ADMIN_API_KEY=xxxxxxxxxxxxxxxxxxxxxxxxxx