Извлечение первого элемента из снимка данных - PullRequest
1 голос
/ 05 марта 2020

Я пытаюсь извлечь первую запись из кода ниже.

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);

Результат: undefined

1 Ответ

0 голосов
/ 05 марта 2020

Похоже, вы, вероятно, получите из базы данных массив из 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()
                }; 
            })
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...