我正在尝试编写一个firebase-cloud-function。我正在尝试将数据here is the data structure解析为object(model / pojo)或Hashmap,因为我相信JS中的所有内容都是一个地图,所以我写了这个代码
exports.checkAllBookings = functions.https.onRequest((request,response)=>{
admin.database().ref(`/bookings`).once('value').then((snapshot)=>{
return snapshot.val()
}).then((bookingDetails)=>{
var map = new HashMap()
map = bookingDetails
console.log(map.size)
map.forEach(function(value,key){
console.log(value)
})
// console.log(bookingDetails.keys)
// bookingDetails.forEach(function(childSnap){
// var item = childSnap.val()
// console.log("item ::::: "+ item)
// })
response.send(map)
})
})
&安培;这是完全相似的complete pic。我从这里Hashmap npm install安装了Hashmap depandency。但毕竟这一点我不断得到error here。那么如何将该数据解析为node.js中的bean或pojo或hashmap,以便我可以进一步完成我的任务?谢谢你的帮助
答案 0 :(得分:0)
很难确定你要做什么。但是,如果您只是尝试将数据返回到被调用者,这是最简单的方法:
exports.checkAllBookings = functions.https.onRequest((request,response)=>{
admin.database().ref(`/bookings`).once('value').then((snapshot)=>{
response.send(snapshot.val());
})
})
如果您在将数据发送回用户之前尝试过滤数据,则可以使用Snapshot.forEach
方法:
exports.checkAllBookings = functions.https.onRequest((request,response)=>{
admin.database().ref(`/bookings`).once('value').then((snapshot)=>{
result = [];
snapshot.forEach(function(bookingSnapshot) {
var booking = bookingSnapshot.val();
if (booking.someProperty === true) {
result.push(booking);
}
});
response.send(map)
})
})
此处的if (booking.someProperty === true)
条件是您想要的任何条件。您可以执行类似的操作,为每个预订添加更多信息。