Проблема с текущей синхронизацией с Алголией - PullRequest
0 голосов
/ 23 апреля 2019

Я пытаюсь запустить скрипт, который будет поддерживать прямую синхронизацию с algolia из firebase. Это скрипт для запуска:

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.config();

// 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);


  // Add or update new objects
  const contactsRef = database.ref('/ctpwebsite-c33ff/guitars');
  contactsRef.on('child_added', addOrUpdateIndexRecord);
  contactsRef.on('child_changed', addOrUpdateIndexRecord);
  contactsRef.on('child_removed', deleteIndexRecord);

  function addOrUpdateIndexRecord(contact) {
    // Get Firebase object
    const record = contact.val();
    // Specify Algolia's objectID using the Firebase object key
    record.objectID = contact.key;
    // Add or update object
    index
      .saveObject(record)
      .then(() => {
        console.log('Firebase object indexed in Algolia', record.objectID);
      })
      .catch(error => {
        console.error('Error when indexing contact into Algolia', error);
        process.exit(1);
      });
  }

  function deleteIndexRecord({key}) {
    // Get Algolia's objectID from the Firebase object key
    const objectID = key;
    // Remove the object from Algolia
    index
      .deleteObject(objectID)
      .then(() => {
        console.log('Firebase object deleted from Algolia', objectID);
      })
      .catch(error => {
        console.error('Error when deleting contact from Algolia', error);
        process.exit(1);
      });
  }

Как только мой сценарий для текущей живой синхронизации выключен, и я заполняю свою базу данных, а затем запускаю сценарий, он работает нормально, но если сценарий включен и я заполняю свою базу данных, я получаю эту ошибку:

Ошибка при индексации контакта в Algolia {AlgoliaSearchError: JSON корень должен быть объектом (строка не допускается) рядом со строкой: 1 столбец: 2

...