云功能的火力地堡在Algolia指数火力地堡数据库对象(Cloud Functions for Fi

2019-09-27 02:07发布

我通过文档,GitHub的仓库去了,但没有为我工作呢。

我的数据结构:

App {
    posts : {
        <post_keys> : {
            auth_name : "name",
            text : "some text" //and many other fields
                      }
            }
    }

1) Github上库 :如果我用这个,我只能从一个函数得到一个领域,如果我需要所有的领域,我需要编写不同的功能,用于每个,这是一个不错的办法。

2) Algolia官方文档使用Node.js语言 :这不能被部署为云的功能,但它做什么,我打算做。

我怎么可以编写可以部署在火力地堡,并得到整个对象与其在Algolia键索引的功能?

Answer 1:

好了,所以我继续以创造一个火力地堡云功能指数在Algolia指数中的所有对象。 这是解决方案:

什么你做的是这样的:

exports.indexentry = functions.database.ref('/blog-posts/{blogid}/text').onWrite(event => {

你应该做的是以下几点:

exports.indexentry = functions.database.ref('/blog-posts/{blogid}').onWrite(event => {
  const index = client.initIndex(ALGOLIA_POSTS_INDEX_NAME);
  var firebaseObject = event.data.val();
  firebaseObject.objectID = event.params.blogid;

  return index.saveObject(firebaseObject).then(
      () => event.data.adminRef.parent.child('last_index_timestamp').set(
          Date.parse(event.timestamp)));
});

所不同的是在第一行:在第一种情况下,你只能听text的变化,因此你只能得到包含文本变化的数据。 在第二种情况下,你会得到整个对象,因为你听在所有的博客对象的变化(注意一下/text移除)。

我测试了它和它的作品对我来说:包括作者全对象Algolia被索引。



文章来源: Cloud Functions for Firebase to index Firebase Database Objects in Algolia