1

我目前正在尝试在环回中创建一个远程方法,该方法将使用 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 编码的前端上,除非我手动调用刷新,否则它不会看到更改。

最好的方法应该是什么?抱歉,如果不清楚或我的方法是错误的,我对此很陌生。谢谢!

4

0 回答 0