Как удалить элемент в базе данных Firebase на основе определенного времени - PullRequest
0 голосов
/ 11 февраля 2019

Я создаю Android-приложение на Java, которое позволяет пользователю создавать запросы подкачки, которые я хочу удалить из базы данных в реальном времени, когда дата swapShiftdate подходит к дате.так что я могу выпускать базу данных постоянно.скажем, пользователь создал свой своп в понедельник, а реальная дата свопинга - четверг.своп должен быть удален из базы данных, когда наступит четверг, чтобы он больше не показывался пользователям.Мне нужен способ, который поможет мне удалить их на основе даты, которую они выбрали, как показано на снимке экрана.

enter image description here

1 Ответ

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

Если вы хотите каждый день проверять, есть ли swaps для удаления на основе значения поля swapperShiftDay, и, если это так, удалять их, вы можете написать облачную функцию HTTPS следующим образом и вызвать еекаждый день через онлайн-задание cron, например https://cron -job.org / ru /

Облачная функция HTTPS будет выглядеть так:

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

admin.initializeApp();

exports.deleteSwaps = functions
  .https.onRequest((req, res) => {

      const dbRef = admin.database().ref('swaps/shift_swaps').orderByChild("swapperShiftDay").equalTo(getTodayDateString());
      dbRef.once('value')
              .then(snapshot => {
                  var updates = {};
                  snapshot.forEach(childSnapshot => {
                      key = childSnapshot.key;
                      updates['swaps/shift_swaps/' + key] = null;
                  });
                  return firebase.database().ref().update(updates);
              })
              .then(() => {
                  res.send({ msg: 'Success' });
              })
              .catch(err => {
                  res.status(500).send({Error: err});
              });
  });

function getTodayDateString() {
  var d = new Date();
  var weekday = new Array(7);
  weekday[0] = "Sunday";
  weekday[1] = "Monday";
  weekday[2] = "Tuesday";
  weekday[3] = "Wednesday";
  weekday[4] = "Thursday";
  weekday[5] = "Friday";
  weekday[6] = "Saturday";

  return weekday[d.getDay()];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...