以下是我将数据推送到Firebase时的代码:
firebase.database().ref(`booklogs/${uid}/${book_id}`).push(page_id)
booklogs :
{HUMjSHxVKAPfVXzOId9zCBkGOgv1:{
book28917: {
-KYp4FdYYODDZG1FX-Pb: 1
}
}
}
我的问题是当我查询数据时,${book_id}
的子节点包含推送键,但我只想获取1
的值,而不是推送键。
我用来查询的代码是:
var booklogs = db.ref(`booklogs/${uid}/${project}`);
booklogs.once('value')
.then((snapshot) => {
console.log(`pages viewed are ${snapshot.key}: ${snapshot.val()}`);
console.dir(snapshot.val());
}).catch((error) => {
console.log(`Error : ${error}`);
});
控制台中返回的数据是:
pages viewed are 2634651: [object Object]
{ '-KYp4FdYYODDZG1FX-Pb': 1 }
非常感谢任何输入。谢谢!
答案 0 :(得分:1)
如果您只想要' 1'而不是推送键,请尝试使用.set()
firebase.database().ref(`booklogs/${uid}/${book_id}`).set(page_id)
这将摆脱对象,只是给你你想要的价值。 Push会自动为您添加的每个值生成一个键,因此您将始终返回一个对象。从Firebase文档 - "对于基本写入操作,您可以使用set()将数据保存到指定的引用,替换该路径上的所有现有数据。"
https://firebase.google.com/docs/database/web/read-and-write