我目前正在尝试在loopback中创建一个远程方法,该方法将使用NodeJS中的Firebase Admin SDK查询firebase数据库。
它有效,但我遇到的问题是我无法实时。它不断崩溃,指向多次调用回调函数的错误。
以下是我的远程方法的代码片段:
'use strict';
module.exports = function(Scusers) {
var admin = require("firebase-admin");
Scusers.listItems = function(cb) {
// Get a database reference
var db = admin.database();
var ref = db.ref("users");
// Attach an asynchronous callback to read the data at our posts reference
var items = [];
// return list of users ordered by key and push each object into an array
ref.orderByKey().on("value", function(snapshot) {
snapshot.forEach(function(data) {
items.push(data.val());
});
// return array
cb(null, items);
}, function (errorObject) {
console.log("The read failed: " + errorObject.code);
});
};
}
如果我更改此行:
ref.orderByKey().on
有:
ref.orderByKey().once
它有效,但在我在AngularJS中编码的前端,除非我手动调用刷新,否则它不会看到更改。
最佳方法应该是什么?对不起,如果不清楚或我的方法是错误的,我是这么新的。谢谢!