0

Ceci est mes données entrées:Retour toutes les données de retour dans le nouveau nœud Firebase nuage Fonctions

enter image description here

Ceci est ma fonction:

exports.updateAll = functions.database.ref('/update/{uid}/{values}').onCreate(event => { 
    const data = event.data.val() 
    console.log(data) 
    return db.ref(`somewhereElse/somepath/`).update(data) 
}) 

C'est l'erreur que je suis RECEVOIR:

enter image description here

Est-il possi ble de mettre à jour toutes les valeurs créées dans un autre chemin? Je pensais que créer un const avec event.data.val() fonctionnerait, mais ensuite j'obtiens l'erreur.

Répondre

0

Votre référence pour le déclencheur onCreate est /update/{uid}/{values} et les données d'événement seront donc celles du values. Par exemple, les données d'événement pour /update/{uid}/email seraient une chaîne et ce n'est pas un objet contenant des enfants.

Si vous avez une raison de devoir déclencher de cette façon, il existe une solution à l'erreur que vous obtenez.

functions.database.ref('/update/{uid}/{values}').onCreate(event => { 

    const key = event.params.values 
    const value = event.data.val() 

    console.log(key, value) 

    return db.ref(`somewhereElse/somepath/{key}`).set(value) 
}) 

La valeur de clé qui a été créée peut être récupérée à partir des paramètres d'événement et des données. Ensuite, nous pouvons interpoler la clé dans le ref ailleurs, et définir la valeur au lieu de la mettre à jour.

+0

Merci pour votre réponse, mais le problème est la dernière ligne lors de la définition de la valeur à un autre chemin. C'est là que l'erreur apparaît. –

+0

Oui, je comprends votre problème. Vous essayez de mettre à jour plutôt que de définir. La mise à jour nécessite un objet avec enfants, mais vos données d'événement déclencheur sont une chaîne. – Callam