Donc j'utilise firebase comme backend pour une application de démonstration, et j'aime beaucoup la pile, mais je suis accroché sur un problème, je n'arrive pas à comprendre comment extraire les valeurs de la base de données (I 'ai des clés bien).
En termes simples, j'envoie des informations d'un périphérique qui contient le "nom convivial" d'un autre périphérique qu'il essaie d'atteindre à une fonction Firebase. Le code de fonction ressemble à ceci:Comment obtenir une valeur à partir de la base de données Firebase et l'affecter à une valeur dans Firebase Cloud Functions?
exports.connectMe = functions.https.onRequest((req, res) => {
cors(req, res,() => {
admin.database().ref('calls/' + req.body.id + '/').set({
target: req.body.target,
caller: req.body.caller,
time: req.body.time
});
const target = req.body.target;
console.log(`target: ${target}`);
const targetCall = admin.database().ref(`tokens/${target}/token`);
console.log(targetCall);
// const targetValue = targetCall.val();
res.status(200).send("Thanks For The Call!");
});
});
La variable, targetCall est signalé à juste titre à l'entrée db que je veux atteindre, mais je ne peux pas extraire la valeur de la vie de moi. Le jeton situé au admin.database.ref
doit être placé dans une requête http. Comment puis-je obtenir la valeur? Le code commenté montre la variable que je voudrais stocker, mais je sais que .val() n'est pas une méthode de référence.
Pour l'enregistrement, admin
est défini sur require('firebase-admin');
précédemment dans le code.
Cela a fonctionné comme je le voulais. Je n'ai pas compris que .once ('value') était destiné à plus que l'initialisation, merci d'avoir éclairci ça! –
N'oubliez pas d'attendre les deux opérations asynchrones ici! Vous pourriez vous retrouver dans une situation de concurrence et obtenir des résultats incohérents. Promise.all (...) pour la victoire. – Kato