come aggiornare i dati utilizzando transazioni quando innescando onCreate si utilizza la funzione nuvola in Firestore?

voti
0

Guardo questo video per aggiornare i dati nel database in tempo reale con la transazione: https://www.youtube.com/watch?v=TPKA88_FmkA , ma sembra transcation non è disponibile sulla funzione FireStore nuvola?

quindi ho dati FireStore come questo, e voglio aggiornare rankPoint quando viene aggiunto un nuovo partecipante nel sottoinsieme. entrare

qui è il codice che uso per attivare la funzione:

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



    });

ma non funziona correttamente, dal registro si dice: entrare

È pubblicato 02/09/2018 alle 05:36
fonte dall'utente
In altre lingue...                            


1 risposte

voti
1

Il video che stai guardando è di circa Realtime trigger di database, che sono molto diverse quindi inneschi Firestore. Non hanno la stessa API.

Se si desidera eseguire una transazione con FireStore, è necessario chiamare runTransaction su un oggetto FireStore, non un oggetto DocumentReference. Si prega di fare riferimento alla documentazione per le transazioni Firestore . Anche in questo caso, il modo in cui funziona con Firestore è diverso da quello in tempo reale del database.

Risposto il 02/09/2018 a 07:11
fonte dall'utente

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