Я пытаюсь использовать код облачных функций 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"]
}
Как я могу получить удаляемые узлы, как ожидалось?