我目前正在尝试在环回中创建一个远程方法,该方法将使用 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 编码的前端上,除非我手动调用刷新,否则它不会看到更改。
最好的方法应该是什么?抱歉,如果不清楚或我的方法是错误的,我对此很陌生。谢谢!