cómo actualizar los datos utilizando la transacción cuando se dispara usando la función onCreate nube en Firestore?

votos
0

Miro el vídeo para actualizar datos en la base de datos en tiempo real utilizando la transacción: https://www.youtube.com/watch?v=TPKA88_FmkA , pero parece transcation no está disponible en función de FireStore nube?

así que tengo los datos FireStore como este, y quiero actualizar rankPoint cuando se añade nueva asistente en la subcolección. introducir

aquí está el código que utilizo para activar la función:

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
        })



    });

pero no funciona correctamente, desde el registro se dice: introducir

Publicado el 02/09/2018 a las 05:36
fuente por usuario
En otros idiomas...                            


1 respuestas

votos
1

El vídeo que estás viendo en tiempo real está a punto trigger, que son muy diferentes entonces disparadores FireStore. Ellos no tienen la misma API.

Si desea realizar una transacción con Firestore, es necesario llamar a runTransaction en un objeto Firestore, no un objeto DocumentReference. Por favor refiérase a la documentación de las transacciones FireStore . Una vez más, la forma en que trabaja con Firestore es diferente que en tiempo real la base de datos.

Respondida el 02/09/2018 a las 07:11
fuente por usuario

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