I use a cloud function as a webhook receiver, so every time I get a webhook I want to update firestore with some data for example. I don’t get how to use firestore in my clound function.
I tried this:
const admin = require("firebase-admin"); ... admin.initializeApp(); res.send(admin.database().ref("/tmp_list/1uMW9ED3YGMfERHZiKJc").get());
All do not seem to be able to initilise this. I also tried:
admin.initializeApp(functions.config().firebase);
Advertisement
Answer
As explained in the documentation, the following should do the trick:
const functions = require('firebase-functions'); const admin = require('firebase-admin'); admin.initializeApp();
Then, to interact with the Realtime Database in an HTTPS Cloud Function you should do along the following lines:
exports.date = functions.https.onRequest(async (req, res) => { const db = admin.database(); const dataSnapshot = await db.ref("tmp_list/1uMW9ED3YGMfERHZiKJc").get(); const data = dataSnapshot.val(); // ... res.send(data); });
Since you tagged your question as google-cloud-firestore
, note that in order to interact with Firestore in an HTTPS Cloud Function you should do as follows:
exports.date = functions.https.onRequest(async (req, res) => { const db = admin.firestore(); const docSnapshot = await db.doc("tmp_list/1uMW9ED3YGMfERHZiKJc").get(); const data = docSnapshot.data(); // ... res.send(...) });
I recommend you watch the following official video.