Облачные функции Flutter Firebase удаляют все элементы сразу после их записи - PullRequest
0 голосов
/ 29 марта 2020

Я пытаюсь использовать код облачных функций deleteOldItems для своего проекта, когда я использую код и просто изменяю 2 часа на 4, он удаляет все мои узлы, как только они записаны. Вот мой код функций Firebase ...

exports.deleteOldItems = functions.database.ref('messages/{pushId}').onWrite(async (change) => {
  var ref = change.after.ref.parent; // reference to the items
  var now = Date.now();
  var cutoff = now - 4 * 60 * 60 * 1000;
  var oldItemsQuery = ref.orderByChild('timestamp').endAt(cutoff);
  return oldItemsQuery.once('value', function(snapshot) {
    // create a map with all children that need to be removed
    var updates = {};
    snapshot.forEach(function(child) {
      updates[child.key] = null
    });
    // execute all updates in one go and return the result to end the function
    return ref.update(updates);
  });
});

А вот как я сохраняю свою метку времени в Flutter в

база данных / сообщения

с дочерней «отметкой времени» ..

var time = DateTime.now().millisecondsSinceEpoch;

Вот мои JSON @ 'messages'

"messages" : {
    "-M3e5Glv5JEaz12hDwBB" : {
      "body" : "Hello",
      "name" : "Charles",
      "photo" : "https://media1.giphy.com/media/7wDEaTbCupuRq/giphy-downsized.gif",
      "timeStamp" : 1585549220985,
      "user" : "4eb8920a-e407-4488-bce4-c6f64f7b0891"
    },
    "-M3e5Jfx2cnbtMTNLPev" : {
      "body" : "Example",
      "name" : "Charles",
      "photo" : "https://media1.giphy.com/media/7wDEaTbCupuRq/giphy-downsized.gif",
      "timeStamp" : 1585549232893,
      "user" : "4eb8920a-e407-4488-bce4-c6f64f7b0891"
    },
    "-M3e6oYk6_zTe6IAs0Fg" : {
      "bodyGif" : "https://media3.giphy.com/media/8xomIW1DRelmo/giphy.gif",
      "name" : "Charles",
      "photo" : "https://media1.giphy.com/media/7wDEaTbCupuRq/giphy-downsized.gif",
      "timestamp" : 1585549625584,
      "user" : "4eb8920a-e407-4488-bce4-c6f64f7b0891"
    },
    "-M3hR_DrGcKhM8zpFbYA" : {
      "body" : "Again",
      "name" : "Charles",
      "photo" : "https://media1.giphy.com/media/7wDEaTbCupuRq/giphy-downsized.gif",
      "timeStamp" : 1585605399479,
      "user" : "4eb8920a-e407-4488-bce4-c6f64f7b0891"
    }

и мои правила безопасности базы данных следующие для 'messages'. ..

"messages": {
      ".indexOn": ["timestamp"]
         }

Как я могу получить удаляемые узлы, как ожидалось?

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