Je suis un développeur Android et récemment j'ai commencé à travailler sur un projet basé sur les fonctions cloud de Firebase et la base de données firestore. J'écris une fonction de déclenchement HTTP qui prendra deux paramètres et comparera cela valeur du paramètre avec la valeur de données firestore et si la valeur correspond, renvoyer une réponse true ou else false.
Question en double:
Oui, certaines questions ont déjà été posées concernant les miennes, mais elles ne sont pas similaires:
Docs Firebase dit :
Cloud Firestore prend en charge la création, la mise à jour, la suppression et l'écriture d'événements
Je veux lire la valeur du firestore à partir du déclencheur HTTP.
Ce que j'ai essayé:
exports.userData = functions.https.onRequest((req, res) => {
const user = req.query.user;
const pass = req.query.pass;
});
Je suis à peu près coincé dans cette partie. Toute aide sera fortement appréciée. Merci
P.S. J'ai des connaissances très limitées liées à JS/TypeScript/NodeJS
un peu tard, mais pour quelqu'un d'autre trébucher sur ce point.
const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp(functions.config().firebase);
exports.someMethod = functions.https.onRequest((req, res) => {
var stuff = [];
var db = admin.firestore();
db.collection("Users").doc("7vFjDJ63DmhcQiEHwl0M7hfL3Kt1").collection("blabla").get().then(snapshot => {
snapshot.forEach(doc => {
var newelement = {
"id": doc.id,
"xxxx": doc.data().xxx,
"yyy": doc.data().yyy
}
stuff = stuff.concat(newelement);
});
res.send(stuff)
return "";
}).catch(reason => {
res.send(reason)
})
});
Grâce à réponse de Ruan , voici un exemple de variation de onCall(..)
:
exports.fireGetColors = functions.https.onCall((data, context) => {
return new Promise((resolve, reject) => {
var colors = {};
var db = admin.firestore();
db.collection('colors')
.get()
.then(snapshot => {
snapshot.forEach(doc => {
var key = doc.id;
var color = doc.data();
color['key'] = key;
colors[key] = color;
});
var colorsStr = JSON.stringify(colors, null, '\t');
console.log('colors callback result : ' + colorsStr);
resolve(colors);
})
.catch(reason => {
console.log('db.collection("colors").get gets err, reason: ' + reason);
reject(reason);
});
});
});