Проблема с функцией Firebase - PullRequest
0 голосов
/ 20 января 2019

Я пытаюсь удалить старые записи в моей базе данных в реальном времени с помощью этой функции. Я не могу удалить старые записи, есть идеи? Функция работает нормально. Код ниже ..

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

const CUT_OFF_TIME = 2 * 60 * 60 * 1000; // 2 Hours in milliseconds.

 exports.deleteOldItems = functions.database.ref('/posts/{pushId}')
 .onWrite((change, context) => {
   var ref = change.after.ref.parent; // reference to the items
   var now = Date.now();
   var cutoff = now - 600;
   var oldItemsQuery = ref.orderByChild('timestamp').endAt(cutoff);
   return oldItemsQuery.once('value', function(snapshot) {
     var updates = {};
     snapshot.forEach(function(child) {
       updates[child.key] = null
     });

     return ref.update(updates);
   });
 });

База данных структурирована так ...

-'db-name'
  - posts
    - post 1
    - post 2
    - etc, etc

1 Ответ

0 голосов
/ 20 января 2019

Вы не можете одновременно использовать обещание и обратный вызов ().Вы должны выбрать один или другой.Обычно лучше использовать обещание.

return oldItemsQuery.once('value').then(snapshot => {
   var updates = {};
   snapshot.forEach(child => {
     updates[child.key] = null;
   });
   return ref.update(updates);
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...