访问Node.js中的Firebase子节点 - Firebase云功能

时间:2017-05-17 19:05:35

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

以下是我的Firebase架构的布局方式: enter image description here

我可以使用以下代码将 _geoloc:以外的所有内容编入我的Algolia索引:

'use strict';

const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp(functions.config().firebase);

// Authenticate to Algolia Database.
// TODO: Make sure you configure the `algolia.app_id` and `algolia.api_key` Google Cloud environment variables.
const algoliasearch = require('algoliasearch');
const client = algoliasearch(functions.config().algolia.app_id, functions.config().algolia.api_key);

// Name fo the algolia index for content.
const ALGOLIA_POSTS_INDEX_NAME = 'businessSearch';


exports.indexentry = functions.database.ref('/businessSearch/{uid}/').onWrite(event => {
    const index = client.initIndex(ALGOLIA_POSTS_INDEX_NAME);
    const firebaseObject = Object.assign({}, event.data.val(), {
      functions.database.ref('/businessSearch/{uid}/_geoloc').onWrite(event =>{

      })
      objectID: event.params.uid,
    });

    index.saveObject(firebaseObject); // .then or .catch as well
    index.addObject
  });

如何使用Node.js将 _geoloc:子节点索引到我的Algolia索引中?

我听说过用Object.assign索引嵌套对象是不可能的,但我只是想知道它是不是。

1 个答案:

答案 0 :(得分:0)

编写数据库时会出现计时问题,而Algolia会将其编入索引。我的问题中包含的代码适用于嵌套对象。