1

J'essaye d'implémenter un déclencheur en utilisant Firebase Functions, qui duplique certaines données dans la base de données. Je veux regarder tous les ajouts à votes/user/vote, la structure est:La fonction Firebase onWrite n'est pas appelée

enter image description here

Et le code que j'ai essayé est:

const functions = require('firebase-functions'); 
const admin = require('firebase-admin'); 

admin.initializeApp(functions.config().firebase); 

exports.duplicateFeedback = functions.database.ref('/votes/{userId}/voteId') 
    .onWrite(event => { 
     const userId = event.params.userId; 
     const voteId = event.data.key(); 
     const vote = event.data.val(); 
     console.log(`New feedback from user ${userId}: { description: "${vote.feedback}", score: ${vote.rating}}`); 

     return; 
    }); 

Mais je ne peux même l'obtenir déclenché .. Les indices Quoi de mal avec ma fonction? Je parie que c'est lié à la référence, mais je n'arrive pas à comprendre exactement quoi.

Répondre

3

En ce moment, la fonction est déclenchée par une écriture à

exports.duplicateFeedback = functions.database.ref('/votes/{userId}/voteId') 

qui serait déclenchée par quelque chose comme ceci:

votes: { 
    00000_josemi_foo: { 
     voteId: { 
      // data 
     } 
    } 
} 

Mais vous n'êtes pas à la recherche de l'enfant voteId, vous recherchez un enfant de {userId}, tel que -33, vous devez donc utiliser un caractère générique:

exports.duplicateFeedback = functions.database.ref('/votes/{userId}/{voteId}')