如何使用.push()添加数据后查询Firebase数据?

以下是我将数据推送到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 } 

任何input将不胜感激。 谢谢!

如果你只想要'1'而不是按键,请尝试使用.set()

 firebase.database().ref(`booklogs/${uid}/${book_id}`).set(page_id) 

这将摆脱对象,只是给你你想要的价值。 推动会自动为您添加的每个值生成一个键,所以您将始终得到一个对象。 从Firebase文档 – “对于基本的写入操作,您可以使用set()将数据保存到指定的引用,replace该path上的任何现有数据。

https://firebase.google.com/docs/database/web/read-and-write