как обновить данные, используя транзакцию, когда запуск с помощью функции OnCreate облака в Firestore?

голоса
0

Я смотрю это видео , чтобы обновить данные в базе данных в режиме реального времени с помощью транзакции: https://www.youtube.com/watch?v=TPKA88_FmkA , но мне кажется , передадут не доступен на функции Firestore облака?

поэтому у меня есть Firestore данные, как это, и я хочу, чтобы обновить rankPoint, когда новый участник добавляется в подколлекцию. введите

Вот код, который я использую для запуска функции:

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



    });

но он не работает должным образом, из журнала говорится: введите

Задан 02/09/2018 в 05:36
источник пользователем
На других языках...                            


1 ответов

голоса
1

Вы смотрите видео о Realtime триггеры базы данных, которые очень отличаются, то Firestore триггерами. Они не имеют один и тот же API.

Если вы хотите выполнить операцию с Firestore, вам нужно вызвать runTransaction на Firestore объект, а не объект DocumentReference. Пожалуйста , обратитесь к документации по Firestore сделок . Опять же , как он работает с Firestore отличается от реального времени базы данных.

Ответил 02/09/2018 в 07:11
источник пользователем

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