Триггер для удаления поля и добавления префикса к другому полю - PullRequest
0 голосов
/ 06 марта 2020

В моей коллекции есть документ, который может получить три поля, но мне нужно хранить только два в соответствии с сообщенными значениями, например, у меня есть поля A, B и C, в зависимости от значения, которое мне не нужно для записи поля B или C. Мне также нужно, чтобы префикс A записывался в поле A. Я следовал этой документации и создал функцию, где я могу читать поля, но я не мог изменить или удалить их. Я использовал событие onCreate.

См. Мой пример:

const functions = require('firebase-functions');
const admin = require('firebase-admin');

admin.initializeApp(functions.config().firebase);

exports.testFields =
  functions.firestore.document('documentos/{documentoId}/ocorrencias/{ocorrenciaId}').onCreate(async (snapshot, context) => {
    const ocorrencia = snapshot.data();
    //I can read the values
    fieldA = ocorrencia.fieldA;
    console.log('Field A: ', fieldA); //'Teste'
    fieldB = ocorrencia.fieldB;
    console.log('Field B: ', fieldB); //5
    fieldC = ocorrencia.fieldC;
    console.log('Field C: ', fieldC); //6
    if(fieldB > FieldC){
      //the C field does not need to be recorded
      prefix = 'B';

    }else{
      //the B field does not need to be recorded
      prefix = 'C';
    }
    //now I need to record the prefix next to FieldA
    //my FieldA should look like this: 'CTeste'
  });

1 Ответ

0 голосов
/ 10 марта 2020

Вы могли бы сделать что-то вроде этого:

if (fieldB > FieldC) {
    //the C field does not need to be recorded
    prefix = 'B';
    ocorrencia.fieldC = null;
} else {
    //the B field does not need to be recorded
    prefix = 'C';
    ocorrencia.fieldb = null;
}
//now I need to record the prefix next to FieldA
//my FieldA should look like this: 'CTeste'
ocorrencia.fieldA = prefix + fieldA;
functions.firestore.collection('ocorrencias').update(ocorrencia);

ПРИМЕЧАНИЕ. То, как ваш код в настоящее время структурирован, выполняет 2 вызова записи для каждой записи, которую вы создаете, один при фактическом создании записи, с последующим обновлением звонка я предложил. Это может привести к некоторым накладным расходам в вашей системе на продвижение вперед или, по крайней мере, к увеличению количества операций записи, что может быть значительным при выставлении счетов. Я бы посоветовал вам выполнять эту проверку не в облачной функции, а в своем интерфейсе.

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