Облачная функция -> сравнение временных меток - PullRequest
0 голосов
/ 26 февраля 2019

Я пытаюсь создать облачную функцию, в которой функция удаляет каждый элемент в коллекции «links», где отметка времени «eindTijd» (конечное время) старше, чем сейчас.

Функция выполняется на каждой БДписать, и не дает мне никаких ошибок, но просто не делает то, что я намерен делать.Это сводит меня с ума!

Я подозреваю, что ошибка в oldItemsQuery, но не может выяснить, что идет не так.Любая помощь будет принята с благодарностью!

Поле "eindTijd" генерируется с помощью функции Date и считается действительной отметкой времени в Firestore.

  'use strict';

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

const firestore = admin.firestore();
const settings = {timestampsInSnapshots: true};
firestore.settings(settings);

exports.verwijderOudeNodes = functions.firestore
.document('/links/{pushId}')
.onWrite(() => {
  const now = Date.now();
  let oldItemsQuery = firestore.collection('links').where('eindTijd', '<=', now);
  return oldItemsQuery.get().then((snapshot) => {
    // create a map with all children that need to be removed
    let batch = firestore.batch();
    snapshot.forEach(child => {
      batch.delete(child.ref);
    });
    // execute all updates in one go and return the result to end the function
    return batch.commit();
  });
});

1 Ответ

0 голосов
/ 26 февраля 2019

Я не уверен, правильно ли вы проходите путь now.На основании документации Firebase о записи различных типов данных я бы ожидал:

const now = admin.firestore.Timestamp.fromDate(new Date())
...