Javascript 从firebase和唯一密钥检索数据

Javascript 从firebase和唯一密钥检索数据,javascript,node.js,firebase,express,Javascript,Node.js,Firebase,Express,我将从firebase数据库检索数据。这是我的数据库的模式 datatable-18f93 -L5pD-jh_Xpqq6bq2eDS text: "HELEO" -L5pDT-IpB4BsFMiABv_ text: "HELEO" -L5pPwXnuTsSXN9pXpJ5 text: "popopo" 我已经创建了获取数据的获取路径 router .route("/") .get(function (req, res, err) { cons

我将从firebase数据库检索数据。这是我的数据库的模式

datatable-18f93
  -L5pD-jh_Xpqq6bq2eDS
    text: "HELEO"
  -L5pDT-IpB4BsFMiABv_
    text: "HELEO"
  -L5pPwXnuTsSXN9pXpJ5
    text: "popopo"
我已经创建了获取数据的获取路径

router
  .route("/")
  .get(function (req, res, err) {
    console.log("test", req.body)

    // Get a database reference to our posts
    var db = admin.database();
    var ref = db.ref("/");

    // Attach an asynchronous callback to read the data at our posts reference
    ref.on("value", function (snapshot) {
      console.log(snapshot.val())
      res.send(snapshot.val());

    }, function (errorObject) {
      console.log("The read failed: " + errorObject.code);
    });
  });
这条路线也是打印的唯一钥匙

{ '-L5pD-jh_Xpqq6bq2eDS': { text: 'HELEO' },
  '-L5pDT-IpB4BsFMiABv_': { text: 'HELEO' },
  '-L5pPwXnuTsSXN9pXpJ5': { text: 'popopo' } }
我想要的只是没有id的对象。我怎么能得到它? 这里有一个例子

{ text: 'HELEO' },
{ text: 'HELEO' },
{ text: 'popopo' }

您需要遍历快照并将obj元素推送到新数组中

ref.once("value", function (snapshot) {
    var list = [];
    snapshot.forEach(function(elem) {
        list.push(elem.val());
    });
    res.send(list);
}, function (errorObject) {
  console.log("The read failed: " + errorObject.code);
});

您需要遍历快照并将obj元素推送到新数组中

ref.once("value", function (snapshot) {
    var list = [];
    snapshot.forEach(function(elem) {
        list.push(elem.val());
    });
    res.send(list);
}, function (errorObject) {
  console.log("The read failed: " + errorObject.code);
});

对于一次性请求,应该使用once()而不是on()。现在,您正在设置一个侦听器,它将随着数据库中的每一个更改而被重复调用。那很糟糕。谢谢,但我会制作一个实时待办事项列表,所以我想我应该使用on()不要使用on()。这不会使请求的速度超过一次()。请花点时间理解on()和once()之间的区别。您将看到once()对于必须在末尾终止的一次性请求更有意义。对于一次性请求,您应该使用once()而不是on()。现在,您正在设置一个侦听器,它将随着数据库中的每一个更改而被重复调用。那很糟糕。谢谢,但我会制作一个实时待办事项列表,所以我想我应该使用on()不要使用on()。这不会使请求的速度超过一次()。请花点时间理解on()和once()之间的区别。您将看到once()对于必须在末尾终止的一次性请求更有意义。您应该使用once()而不是on()。请参阅我对该问题的评论。我收到一个错误:
无法在发送后设置标题
当我在数据库中发布时,错误在以下行:
res.send(list)
您使用on还是once?您应该使用once()而不是on()。请参阅我对该问题的评论。我收到一个错误:
在发送后无法设置标题
当我在数据库中发布时,错误在以下行:
res.send(list)
您是使用on还是一次性?