Java 如何根据特定时间删除Firebase数据库中的项目

Java 如何根据特定时间删除Firebase数据库中的项目,java,android,firebase,firebase-realtime-database,google-cloud-functions,Java,Android,Firebase,Firebase Realtime Database,Google Cloud Functions,我正在用Java创建一个Android应用程序,允许用户创建交换请求,我希望在交换日期达到其日期时将其从实时数据库中删除。所以我可以不断地释放数据库。 假设用户在周一创建了交换,而在现实生活中交换日期是周四。当周四到来时,交换应该从数据库中删除,这样用户就不会再看到它了。我想要一种方法,帮助我删除他们的基础上的日期,他们已经选择作为其显示在屏幕截图 如果您想每天根据swapperShiftDay字段值检查是否有要删除的交换,如果是这样,请删除它们,您可以编写一个HTTPS云函数,如下所示,并每天

我正在用Java创建一个Android应用程序,允许用户创建交换请求,我希望在交换日期达到其日期时将其从实时数据库中删除。所以我可以不断地释放数据库。 假设用户在周一创建了交换,而在现实生活中交换日期是周四。当周四到来时,交换应该从数据库中删除,这样用户就不会再看到它了。我想要一种方法,帮助我删除他们的基础上的日期,他们已经选择作为其显示在屏幕截图


如果您想每天根据swapperShiftDay字段值检查是否有要删除的交换,如果是这样,请删除它们,您可以编写一个HTTPS云函数,如下所示,并每天通过在线cron作业调用它,如

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()];
}

您是否要检查掉期是否应该每天删除一次或几次?@Ahmed Rabee您好,您是否有时间评估/尝试我回答中提出的解决方案?嗨,雷诺,我非常感谢您的帮助。我知道我的反应太晚了,对此我很抱歉,但我有我的问题,我为此道歉。从现在开始,我决定学习JavaScript来理解您的代码,我刚刚开始学习ECMA 6,现在我能够理解您的代码,我已经成功地将其部署到我的函数中,并使用函数链接为其创建了cron计划。我唯一的问题是,我试图在浏览器中使用URL来检查函数是否工作,它会打印此错误参考错误:firebase未定义失败。我不会骗你我刚刚学习了语言语法,我不知道为什么它会显示此错误,现在正在寻找解决方法。此外,我没有检查答案,因为我想检查它的所有步骤,我已经完成后,它与我的作品。再次感谢你的帮助,我真的很高兴。你好。通常我提供的代码应该可以正常工作。可能是部署问题?也许您可以关注以下入门帖子: