Похоже, вы, вероятно, получите из базы данных массив из 2 элементов из-за limitToLast(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()
};
})
})