好的,我正在使用Algolia在我的应用程序中处理搜索。以下代码将我的数据库中的任何内容添加到我的Algolia Index中。但是,无论何时导入数据,firebase节点中的所有值都放在" text"在Algolia指数中。
如何将其存储为Firebase中的键值对。
即
地址:1234 Main St.
VS。 /(而不是)
text:
地址:1234 Main St。
我的代码:
exports.indexentry = functions.database
.ref('/blog-posts/{blogid}/text')
.onWrite(event => {
const index = client.initIndex(ALGOLIA_POSTS_INDEX_NAME);
const firebaseObject = {
text: event.data.val(),
objectID: event.params.blogid,
};
});
答案 0 :(得分:4)
所以你在这里缺少的是将数据推送到Algolia。如果要在对象中包含所有firebase数据,将其分配给新对象,以及objectID
exports.indexentry = functions.database
.ref('/blog-posts/{blogid}/text')
.onWrite(event => {
const index = client.initIndex(ALGOLIA_POSTS_INDEX_NAME);
const firebaseObject = Object.assign({}, event.data.val(), {
objectID: event.params.blogid,
});
index.saveObject(firebaseObject); // .then or .catch as well
});
这有意义吗?