【发布时间】:2018-02-21 07:49:03
【问题描述】:
我会从 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' }
【问题讨论】:
-
对于一次性请求,您应该使用 once() 而不是 on()。现在,您正在设置一个侦听器,该侦听器将随着数据库中的每一次更改而被重复调用。这很糟糕。
-
谢谢,但我会做一个实时待办事项列表,所以我认为我应该使用 on()
-
不要使用 on()。这不会使请求比一次()更快。请花一些时间了解 on() 和 once() 之间的区别。您会看到,对于必须在最后终止的一次性请求,once() 更有意义。
标签: javascript node.js firebase express