运行节点index.js不会执行任何操作

时间:2018-07-06 18:57:47

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

我正在尝试按照一个简单的教程来设置algolia,在这里可以找到。

https://www.algolia.com/doc/tutorials/indexing/3rd-party-service/firebase-algolia/

我逐字逐字地将代码复制到index.js文件中。

当我在终端中运行node index.js时,我会得到

enter image description here

没有成功消息。阿尔戈利亚一无所有。没有。我已经包含了我的代码,任何人都认为我做错了什么。这使我沮丧了几个小时。

const algoliasearch = require('algoliasearch');
const dotenv = require('dotenv');
const firebase = require('firebase');

// load values from the .env file in this directory into process.env
dotenv.load();

// configure firebase
firebase.initializeApp({
  databaseURL: process.env.FIREBASE_DATABASE_URL,
});
const database = firebase.database();

// configure algolia
const algolia = algoliasearch(
  process.env.ALGOLIA_APP_ID,
  process.env.ALGOLIA_API_KEY
);
const index = algolia.initIndex(process.env.ALGOLIA_INDEX_NAME);

  // Get all contacts from Firebase
  database.ref('/events').once('value', event => {
    console.log('index is', index);

    // Build an array of all records to push to Algolia
    const records = [];
    event.forEach(event => {

      // get the key and data from the snapshot
      const childKey = event.key;
      const childData = event.val();
      // We set the Algolia objectID as the Firebase .key
      childData.objectID = childKey;
      // Add object for indexing
      console.log('child data is', childData);

      records.push(childData);
    });

    // Add or update new objects
    index
      .saveObjects(records)
      .then(() => {
        console.log('records are', records);

        console.log('Events imported into Algolia');
      })
      .catch(error => {
        console.error('Error when importing events into Algolia', error);
        process.exit(1);
      });
  });

我已按照本教程中的所有步骤进行操作。我什至每次运行节点index.js时都再次运行它,无论我做什么都不会发生

2 个答案:

答案 0 :(得分:0)

再次查看:

https://www.algolia.com/doc/tutorials/indexing/3rd-party-service/firebase-algolia/

它说首先您需要安装以下模块:

npm install dotenv --save
npm install algoliasearch --save
npm install firebase --save

,然后设置您的环境变量:

    export ALGOLIA_APP_ID=<algolia-app-id>
    export ALGOLIA_API_KEY=<algolia-api-key>
    export ALGOLIA_INDEX_NAME='contacts'
    export FIREBASE_DATABASE_URL=https://<my-firebase-database>.firebaseio.com

尝试这些事情,如果您仍然一无所获,那么我认为您必须从某个地方发出或调用'/ events'事件以控制console.log('index is', index);部分。

答案 1 :(得分:0)

问题与数据库链接有关。 检查FIREBASE_DATABASE_URL的.env文件中的值,该值应类似于:https://test123-dsacb.firebaseio.com