Активировать функцию Firebase onUpdate значения поля документа - PullRequest
0 голосов
/ 24 октября 2018

Я ищу решение сделать приведенный ниже код триггера onUpdate для значения поля, а не для всего документа.

Возможно ли использовать пакет firebase-functions для прослушивания полязначение, скажем, поле с отметкой времени с именем lastUpdate?В качестве альтернативы я склоняюсь к триггеру HTTP, вызываемому через onClick с использованием axios, но не могу найти никаких ресурсов, документации или учебных пособий, которые помогли бы мне понять.Если вы знаете что-нибудь, я бы с удовольствием их прочитал.

const functions = require('firebase-functions');
const admin = require('firebase-admin');
const sgMail = require('@sendgrid/mail');

try {
  admin.initializeApp();
} catch (e) {
  console.log(e);
}

var SENDGRID_API_KEY = functions.config().sendgrid.key;
sgMail.setApiKey(SENDGRID_API_KEY);

exports = module.exports = functions.firestore
  .document('users/{id}')
  .onUpdate(snap => {
    const user = snap.data();
    const msg = {
      to: user.email,
      from: 'example@example.com',
      templateId: 'd-6c0e0385808c480ab475748a6eeed773',
      dynamic_template_data: {
        firstName: user.firstName,
        email: user.email,
        id: user.id
      }
    };
    return sgMail.send(msg).catch(err => console.log(`${user.email} - ${err}`));
  });

1 Ответ

0 голосов
/ 24 октября 2018

Cloud Firestore запускает облачные функции на уровне документа.Невозможно вызвать функцию только при изменении определенного поля в документе.Если вам нужен такой уровень детализации для ваших триггеров, рассмотрите возможность использования базы данных в реальном времени.

...