gpt4 book ai didi

javascript - 从数据快照中检索第一个元素

转载 作者:行者123 更新时间:2023-11-28 03:06:48 24 4
gpt4 key购买 nike

我正在尝试从下面的代码中提取第一条记录。

exports.sendBuyerNotification = functions.database.ref('/Bids/{uid}').onWrite((async(change,context)=>{

const bid= change.after.val();
const prodid = bid.prodID;
const new_price = bid.price;
const biddata= admin.database().ref('/Bids');
biddata.orderByChild('prodID').equalTo(prodid).limitToLast(2).once('value',function(snapshot){
var old_data = [];
old_data.push(snapshot.val());
var mystring = JSON.parse(snapshot.val())
return console.log("Old price" + mystring[0].price);

结果:未定义

最佳答案

由于 limitToLast(2),您可能会从数据库中取回最多包含 2 个项目的数组。但您需要先检查是否确实从数据库获取数据 - 请参阅下面的 console.log 语句 - 我还提出了一些其他建议。

尝试一下,看看是否能解决您的问题:

exports.sendBuyerNotification = functions.database.ref('/Bids/{uid}').onWrite((async(change,context) => {

const bid = change.after.val();
console.log(bid) // are you getting a value from this?
const prodid = bid.prodID;
const new_price = bid.price;
const biddata= admin.database().ref('/Bids');
biddata.orderByChild('prodID')
.equalTo(prodid)
.limitToLast(2)
.once('value', function(snapshot){
console.log(snapshot.val()) // check you are getting a value?

const myString = snapshot.val();
console.log("Old price" + myString[0].price);

return {
message: "Old price $" + myString[0].price,
values: snapshot.val()
};
})
})

关于javascript - 从数据快照中检索第一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60540976/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com