如何使用.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