Algolia Nodejs Firebase同步 - .on(' child_added')不会被调用

时间:2017-06-08 12:32:09

标签: node.js firebase algolia

我有一个NodeJS脚本,我在其中查看Firebase数据库中的树,以查看是否已通过child_addedchilded_changed和{{添加/更改/删除了条目1}} Firebase管理员child_removed功能的属性,以便将条目与我的Algolia数据库同步。

问题在于,当我在这些树上添加/更改/删除项目时,函数本身永远不会被触发。

然而,当我启动脚本时,我还有一个.on()函数,我调用它可以正常工作。

例如,这是我的NodeJS脚本中的相关.once('value', initialImport)代码:

child_added

这永远不会运行:/有什么我做错了吗?这曾经曾经有过一段时间。

更新:我遇到的问题是我在ref上调用了var dotenv = require('dotenv'); var firebaseAdmin = require("firebase-admin"); var algoliasearch = require('algoliasearch'); // load values from the .env file in this directory into process.env dotenv.load(); var serviceAccount = require("./serviceAccountKey.json"); firebaseAdmin.initializeApp({ credential: firebaseAdmin.credential.cert(serviceAccount), databaseURL: process.env.FIREBASE_DATABASE_URL }); var database = firebaseAdmin.database(); var algolia = algoliasearch(process.env.ALGOLIA_APP_ID, process.env.ALGOLIA_API_KEY); var users = algolia.initIndex('users'); var bandsRef = database.ref("/social/bands"); bandsRef.on('child_added', addOrUpdateBandIndexRecord); /** * Add or update a band index record */ function addOrUpdateBandIndexRecord(dataSnapshot) { // Get Firebase object var firebaseObject = dataSnapshot.val(); // Specify Algolia's objectID using the Firebase object key firebaseObject.objectID = dataSnapshot.key; // Add or update object bands.saveObject(firebaseObject, function(err, content) { if (err) { throw err; } console.log('Firebase<>Algolia band object saved', firebaseObject.objectID); }); } 我正在添加.once(),这导致了冲突。删除.on('child_added')的代码后,它解决了同步问题。为了进行初始导入,您很可能希望将该代码放在单独的节点文件中。无论如何,这对我有用。

0 个答案:

没有答案