comment mettre à jour les données à l'aide de la transaction lors du déclenchement onCreate en utilisant la fonction de nuage dans Firestore?

voix
0

Je regarde cette vidéo pour mettre à jour les données dans la base de données en temps réel en utilisant la transaction: https://www.youtube.com/watch?v=TPKA88_FmkA , mais il semble transcation n'est pas disponible sur la fonction cloud FireStore?

donc j'ai données FireStore comme ça, et je veux mettre à jour rankPoint lorsque le nouveau participant est ajouté dans la sous-collection. entrez

voici le code que j'utilise pour déclencher la fonction:

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


exports.increasePointWhenAddingNewAttendee = functions.firestore
    .document('Events/{eventId}/Attendee/{userId}')
    .onCreate((snap, context) => {

        const eventID = context.params.eventId
        const eventRef = snap.ref.firestore.collection('Events').doc(eventID)

        // increase rankPoint
        return eventRef.transaction(rankPoint => {
            return rankPoint   1
        })



    });

mais il ne fonctionne pas correctement, du journal, il est dit: entrez

Créé 02/09/2018 à 05:36
source utilisateur
Dans d'autres langues...                            


1 réponses

voix
1

La vidéo que vous regardez est en temps réel sur les éléments déclencheurs de base de données, qui sont très différents alors déclencheurs FireStore. Ils ne sont pas la même API.

Si vous souhaitez effectuer une transaction avec Firestore, vous devez appeler runTransaction sur un objet Firestore, pas un objet DocumentReference. S'il vous plaît se référer à la documentation pour les transactions FireStore . Encore une fois, la façon dont il fonctionne avec Firestore est différente de la base de données en temps réel.

Créé 02/09/2018 à 07:11
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more