实际上,我正在列出一个不一致的机器人列表,我想显示所有机器人,我使用ExpressNode.js。 我在firebase中的数据如下所示
db.collection("bots").doc("12345").set({
prefix:"?",
id:"12345",
server:"5"
})
db.collection("bots").doc("12346").set({
prefix:"-",
id:"12346",
server:"7"
});
const x = require ("express");
const router = x.Router ()
const {db} = require("../app");
db.collection("bots").
get().then((querySnapshot) => { const x = require ("express");
const router = x.Router ()
const {db} = require("../app");
db.collection("bots").where("approved", "==", false).
get().then((querySnapshot) => {
querySnapshot.forEach(function(doc) {
const bot = doc.data()
console.log(bot. prefix)
router.get("/",(req,res) => {
res.send(bot.id+"=>"+bot.prefix)
})
});
})
module.exports = router;
输出:
12345 => "?"
__ 预期输出
12345 => "?"
12346 => "-"
当我进行控制台操作时,它同时返回两个prefix
但是当我尝试渲染它时,它仅显示第一个。
答案 0 :(得分:0)
如果您要显示文档列表,请按照getting all documents from a collection上文档中显示的食谱进行操作:
db.collection("bots").get().then((querySnapshot) => {
querySnapshot.forEach(function(doc) {
console.log(doc.id, " => ", doc.data());
});
})
我强烈建议研究该文档以及其余文档,因为它具有针对许多常见用例(例如本案例)的代码示例。
答案 1 :(得分:0)
我认为您需要在遍历快照后发送结果。 尝试这样的事情:
let results = []
querySnapshot.forEach(function(doc) {
const bot = doc.data()
console.log(bot. prefix)
results.push(bot.id+"=>"+bot.prefix)
});
router.get("/",(req,res) => {
res.send(results.join('\n'))
})