Не удается получить функцию onCreate для запуска с использованием TypeScript в Cloud Firestore - PullRequest
0 голосов
/ 12 января 2020

Я пытаюсь настроить функцию в Cloud Firestore, которая будет запускаться всякий раз, когда новый документ добавляется в определенную коллекцию. Я бы sh сделал это, используя TypeScript, так как мне сказали, что с ним легче работать при написании асинхронного кода. Следующий код JavaScript работает как положено и срабатывает всякий раз, когда я добавляю новый документ в указанное место:

//This JavaScript code works
import * as functions from 'firebase-functions';

exports.waitReportCreatedJS = functions.firestore
    .document('merchant_locations/{merchantId}/wait_period/{waitId}')
    .onCreate((snapshot, context) => {
        console.log('WaitReportCreated has been triggered');
        const merchantId = context.params.merchantId
        const waitId = context.params.waitId
        console.log(`New wait recorded: ${waitId} at ${merchantId}`);
        return snapshot.ref.update({ waitId: waitId })        

      });

Но затем, когда я пытаюсь сделать то же самое с помощью TypeScript, он не запускается - ничего все происходит, когда я добавляю документ:

//But this TypeScript code doesn't seem to even trigger
import * as functions from 'firebase-functions';

export const waitReportCreatedTS = functions.database
.ref('merchant_locations/{merchantId}/wait_period/{waitId}')
.onCreate((snapshot, context) => {
    console.log('WaitReportCreated has been triggered');
    const merchantId = context.params.merchantId
    const waitId = context.params.waitId
    console.log(`New wait recorded: ${waitId} at ${merchantId}`);
    return snapshot.ref.update({ waitId: waitId })
})

Я очень плохо знаком с функциями Firestore и совершенно не понимаю, что я делаю неправильно. Спасибо за любую помощь, вы можете дать мне.

1 Ответ

0 голосов
/ 12 января 2020

В вашем примере javascript вы поддерживаете базу данных Firestore functions.firestore .document. Однако ваш пример TypeScript использует базу данных реального времени functions.database.ref.

import * as functions from 'firebase-functions';

export const waitReportCreatedTS = functions.firestore
    .document('merchant_locations/{merchantId}/wait_period/{waitId}')
    .onCreate((snapshot, context) => {
    console.log('WaitReportCreated has been triggered');
    const merchantId = context.params.merchantId
    const waitId = context.params.waitId
    console.log(`New wait recorded: ${waitId} at ${merchantId}`);
    return snapshot.ref.update({ waitId: waitId })

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...