2

Ich möchte eine Abfrage in meiner Datenbank durchführen, sobald eine Cloud-Funktion in meiner Firebase App aufgerufen wird.Wie führe ich Abfragen innerhalb der Cloud-Funktion aus?

Nehmen wir an, ich habe einen bestimmten Auslöser für die Datenbank, betrachten Sie das Beispiel in der get started guide on Firebase.

// Listens for new messages added to /messages/:pushId/original and creates an 
// uppercase version of the message to /messages/:pushId/uppercase 
exports.makeUppercase = functions.database.ref('/messages/{pushId}/original') 
    .onWrite(event => { 
     // Grab the current value of what was written to the Realtime Database. 
     const original = event.data.val(); 
     console.log('Uppercasing', event.params.pushId, original); 
     const uppercase = original.toUpperCase(); 
     // I'D LIKE TO PERFORM A QUERY HERE, JUST A SIMPLE RETRIEVE BASED ON THE ID PROVIDED 
    // You must return a Promise when performing asynchronous tasks inside a Functions such as 
    // writing to the Firebase Realtime Database. 
    // Setting an "uppercase" sibling in the Realtime Database returns a Promise. 
    return event.data.ref.parent.child('uppercase').set(uppercase); 
}); 

Welche Module soll ich importieren, wenn überhaupt? Wie kann ich die Abfrage in der DB durchführen?

Vielen Dank im Voraus für Ihre Antwort!

Antwort

9

Sie können die Node.js Admin SDK für diesen Einsatz:

const functions = require('firebase-functions'); 
const admin = require('firebase-admin'); 
admin.initializeApp(functions.config().firebase); 

exports.makeUppercase = functions.database 
    .ref('/messages/{pushId}/original') 
    .onWrite(event => { 
    return admin.database().ref('/other') 
     .orderByChild('id').equalTo(event.params.pushId) 
     .once('value').then(snapshot => { 
     // there, I queried! 
     }); 
    }); 
Verwandte Themen