Как проверить значение свойства элементов из базы данных Firebase перед удалением элементов - PullRequest
0 голосов
/ 29 августа 2018

У меня есть модель данных Firebase:

Database:
    tweets
         favorite:Bool
         tweetText: String
         userID: String
         timestamp: Double

Я хочу запустить метод, который говорит: «удаляйте твиты, которые не добавлены в избранное, в течение последних 2 часов»

Вот что у меня в консоли (// там, где мне нужна помощь):

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

admin.initializeApp();

exports.deleteOldItems = functions.database.ref(‘/tweets/{tweet}’)
.onWrite((change, context) => {
         var ref = change.after.ref.parent; 
         var now = Date.now();
         var cutoff = now - 2 * 60 * 60 * 1000;
         var oldItemsQuery = ref.orderByChild('timestamp').endAt(cutoff);
         return oldItemsQuery.once('value', function(snapshot) {

                                   var updates = {};
                                   snapshot.forEach(function(child) {
                    // Delete Tweet BUT ONLY IF FAVORITE == True????
                    //Help here
                                                    updates[child.key] = null
                                                    });
                                   // execute all updates in one go and return the result to end the function
                                   return ref.update(updates);
                                   });
         });

1 Ответ

0 голосов
/ 29 августа 2018

Вы ищете что-то вроде этого:

exports.deleteOldItems = functions.database.ref(‘/tweets/{tweet}’)
  .onWrite((change, context) => {
     var ref = change.after.ref.parent; 
     var now = Date.now();
     var cutoff = now - 2 * 60 * 60 * 1000;
     var oldItemsQuery = ref.orderByChild('timestamp').endAt(cutoff);
     return oldItemsQuery.once('value', function(snapshot) {
           var updates = {};
           snapshot.forEach(function(child) {
               if (!child.val().favorite) {
                    updates[child.key] = null
               }
           });
           // execute all updates in one go and return the result to end the function
           return ref.update(updates);
           });
     });
})

Если вы не знакомы с (используя Firebase из) JavaScript, облачные функции для Firebase - не самый простой способ изучить его. Я рекомендую сначала прочитать документацию Firebase для веб-разработчиков и / или взять кодовую метку Firebase для веб-разработчиков . Они охватывают многие основные взаимодействия JavaScript, Web и Firebase. Вы также можете использовать Admin SDK в локальном процессе Node.js, который можно отлаживать с помощью локального отладчика. После этого вы будете гораздо лучше подготовлены к написанию кода и для облачных функций.

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