我被告知要安排在云端中的任务来为Firebase中的实时数据库执行任务我需要使用Server SDK。
我们假设我使用以下代码将数据保存到Firebase数据库:
DatabaseReference usersRef = ref.child("users");
Map<String, User> users = new HashMap<String, User>();
users.put("alanisawesome", new User("June 23, 1912", "Alan Turing"));
users.put("gracehop", new User("December 9, 1906", "Grace Hopper"));
usersRef.setValue(users);
但我希望明天将其作为任务上传。我的意思是,这将节省明天而不是此代码运行的瞬间。
我已准备好Calendar
:
Calendar cal = Calendar.getInstance();
cal.add(DAY_OF_MONTH,1); //This could be wrong, but I'm just telling you I have a Calendar ready, so ignore any errors in this code
那么,如何使用Firebase Server SDK保存任务?文档没有为此提供明确的答案,因为我唯一能看到的就是像实时数据库一样保存数据。
答案 0 :(得分:1)
如果您有第三方服务器(使用Firebase SDK,服务器SDK),您可以轮询所有已保存的数据,并调用TImerService或CRON JOB,使其将列表保留到Firebase实时数据库。
这取决于您的服务器实现,但上面指出的排队实现可以在您的方案中使用。
可以在此StackOverflow page上找到调用Web服务的CRON作业示例(在您的情况下,将所有排队项目保留到Firebase的作业)。对于TimerService,您可以参考其documentation
快乐的编码!
答案 1 :(得分:0)
创建广播接收器并在清单中定义它。 覆盖onRecieve并将firebase代码放在那里。 然后在清单中定义接收器。 使用Receiver创建pendingIntent,并使用setExact()方法将其设置在AlarmManager中,并传入pendingIntent。
答案 2 :(得分:0)
目前,没有方式可以让您在Firebase的服务器上运行代码。有两种选择可以解决这个问题:
但是,Firebase正在处理名为 Firebase触发器的内容,这将解决我们的问题,但仍未发布,但未确认发布日期。