De Firebase fonctions de Cloud que je fais requête dans Firebase en temps réel DB comme ceci:somme forEach avec fonction flèche donne des résultats inattendus dans Firebase en temps réel Base de données
let logs = this.firebase.database()
.ref('logs')
.orderByChild("userId").equalTo(userId)
.once('value');
données Retourné:
{
"id1abc": {
"myValue": 1,
"userId": "abc"
},
"id2abc": {
"myValue": 2,
"userId": "abc"
},
"id3abc": {
"myValue": 3,
"userId": "abc"
}
}
Requête renvoie un couple entrées dont les valeurs que je voudrais additionner:
let loggedVal = 0;
logs.forEach(log => {
loggedVal += log.val().myValue;
});
return loggedVal;
Fonction flèche à l'intérieur forEach me donne la valeur correcte dans ce cas (Sum est égal à 6).
Mais quand je supprimer les parenthèses comme ici:
let loggedVal = 0;
logs.forEach(log => loggedVal += log.val().myValue);
return loggedVal;
valeur retournée est somme non, mais juste valeur du premier élément que je suis itérer (loggedVal == 6). Quelqu'un peut-il expliquer d'où vient la différence?
Comment pouvez-vous utiliser 'forEach' dans un' Object' en premier lieu? Les données renvoyées que vous nous avez montrées ne sont pas des 'Array' éligibles à' Array.forEach'. –