Я пытаюсь запустить скрипт, который будет поддерживать прямую синхронизацию с 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