从Firebase获取带有Node.js函数的值密钥对

时间:2017-05-15 20:07:39

标签: node.js firebase firebase-realtime-database algolia

好的,我正在使用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,
    };
  });

enter image description here

1 个答案:

答案 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
  });

这有意义吗?