comment mettre à jour une valeur de firebase en temps réel de la base de données à l'aide de Cloud Fonctions de Firebase
Je suis allé si la firebase docs pour mettre à jour une valeur en temps réel de la base de données à l'aide de Cloud Fonctions de Firebase, mais je ne suis pas en mesure de comprendre.
Ma structure de base de données est
{
"user" : {
"-KdD1f0ecmVXHZ3H3abZ" : {
"email" : "[email protected]",
"first_name" : "John",
"last_name" : "Smith",
"isVerified" : false
},
"-KdG4iHEYjInv7ljBhgG" : {
"email" : "[email protected]",
"first_name" : "Max1",
"last_name" : "Rosse13131313l",
"isVerified" : false
},
"-KdGAZ8Ws6weXWo0essF" : {
"email" : "[email protected]",
"first_name" : "Max1",
"last_name" : "Rosse13131313l",
"isVerified" : false
}
}
Je veux mettre à jour le isVerified à l'aide de la base de données de déclenchement cloud fonctions. Je ne sais pas comment mettre à jour une base de données de la valeur à l'aide de cloud fonctions (langue : Node.JS)
J'ai écrit un code pour mettre à jour automatiquement la valeur de la clé 'isVerified" d'un utilisateur, lorsque l'utilisateur est créé à l'aide de la base de données de déclenchement onWrite. Mon code est
const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp(functions.config().firebase);
exports.userVerification = functions.database.ref('/users/{pushId}')
.onWrite(event => {
//Grab the current value of what was written to the Realtime Database.
var eventSnapshot = event.data;
if (event.data.previous.exists()) {
return;
}
eventSnapshot.update({
"isVerified": true
});
});
mais quand je déployer le code, et ajouter un utilisateur à la base de données, le cloud, la fonction log affiche l'erreur ci-dessous
TypeError: eventSnapshot.child(...).update is not a function
at exports.userVerification.functions.database.ref.onWrite.event (/user_code/index.js:10:36)
at /user_code/node_modules/firebase-functions/lib/cloud-functions.js:35:20
at process._tickDomainCallback (internal/process/next_tick.js:129:7)
Je ne suis pas en mesure de comprendre l'exemple de la doc, j'ai besoin d'aide dans la compréhension de la même ou someother exemple de code pour étudier avec. Je vous remercie à l'avance.
Il est peu probable que quelqu'un va juste de venir avec un meilleur exemple que ce qui est dans la documentation. Au lieu de demander pour cette, spectacle que vous avez déjà essayé et lorsque vous êtes bloqué.
Salut, j'ai mis à jour le post avec les détails de ce que j'ai essayé et l'erreur que j'ai eu. Gentiment pour y faire face, mon erreur, j'aurais donné plus de détails première elle-même. De bien vouloir m'aider.
OriginalL'auteur Thooyavan Manivaasakar | 2017-04-18
Vous devez vous connecter pour publier un commentaire.
Que vous essayez d'appeler update() sur un DeltaSnapshot objet. Il n'existe pas de méthode sur ce type d'objet.
event.data
est un DeltaSnapshot. Si vous souhaitez modifier les données à l'emplacement de la modification représenté par cet objet. Utiliser sonref
propriété afin d'obtenir une prise d'un objet de Référence:Aussi, si vous êtes à la lecture ou l'écriture de la base de données dans une fonction, vous devez vous toujours le retour d'une Promesse qui indique le moment où le changement est complet:
Je vous recommande de Frank conseils de commentaires, et étude de l'existant exemple de code et la documentation afin de mieux comprendre comment le Cloud Fonctions œuvres.
pouvez-vous s'il vous plaît partagez votre fonction finale comme une réponse? Cette réponse a toujours une certaine ambiguïté et l'exemple de code et de la documentation ont beaucoup à être remis en question, d'où votre question, ma question identique.
Salut @mobibob actuel, la réponse semble claire et m'a aidé à sortir, donc de bien vouloir me faire connaître votre problème précis, de sorte que je peux les aider en conséquence
OriginalL'auteur Doug Stevenson