Firebase的云端函数在Algolia中为Firebase数据库对象build立索引

我通过文档,github仓库,但没有为我工作呢。

我的数据结构:

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

1) Github存储库 :如果我使用这个,我只从一个函数获得一个字段,如果我需要所有的字段,我将需要为每个函数编写单独的函数,这是一个坏的方法。

2) Algolia Node.js的官方文档 :这不能作为一个云function部署,但它做我打算做的。

我如何编写一个可以在Firebase上部署的函数,并获取在Algolia中使用其密钥索引的整个对象?

好吧,我继续创build一个Firebase Cloudfunction,以索引Algolia索引中的所有对象。 这是解决scheme:

你在做什么是这样的:

 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被删除),您将获得整个对象。

我testing了它,它适用于我:包括作者在内的整个对象在Algolia中被索引。