flutter - 颤抖每24小时自动更新一次Firebase的最佳方法是什么?
问题描述
我想Firestore
document
每天早上 6 点自动更新。
例如,有一个报价应用程序并每天早上将报价更新为新报价,以便用户可以看到不同的报价。
我不介意在 iOS 设备或 Android 上执行代码,因为我有两部手机。
但我想要一个应用程序来更新文档,即使我在睡觉。
这样做的最佳方法是什么?
解决方案
好消息是有点可能。
后台任务简述
你会Android
使用 . WorkManager
您可以要求Android
框架在未来某处安排您的任务(不支持确切的时间)。
在XCode 中iOS
启用Background Fetch
或手动编辑Info.plist
文件。
<key>UIBackgroundModes</key>
<array>
<string>fetch</string>
</array>
</key>
WorkManager 插件
由于有很多仪式将所有内容连接在一起,因此有一个方便的Flutter
插件可以帮助您。
flutter_workmanager插件同时支持一个统一WorkManager
的performFetch
Dart API。
void callbackDispatcher() {
Workmanager.executeTask((backgroundTask) {
switch(backgroundTask) {
case Workmanager.iOSBackgroundTask:
case "firebaseTask":
print("You are now in a background Isolate");
print("Do some work with Firebase");
Firebase.doSomethingHere();
break;
}
return Future.value(true);
});
}
void main() {
Workmanager.initialize(callbackDispatcher);
Workmanager.registerPeriodicTask(
"1",
"firebaseTask",
frequency: Duration(days: 1),
constraints: WorkManagerConstraintConfig(networkType: NetworkType.connected),
);
runApp(MyApp());
}
推荐阅读
- sql - 创建表格视图,汇总行中的所有列以及行名等于列名的列的所有行
- javascript - 允许在使用 jQuery 循环时切换项目
- jquery - jQuery 是否有通配符结尾
- javascript - 从 JSON 输出中获取字符串
- c# - 为什么我不能通过代码将文件插入 SharePoint 列表?它进入异常,似乎访问被拒绝
- python - Keras 相当于 Caffe 的“cpu_data()”方法?
- sharepoint - 如何隐藏仅对管理员有用的行,以便用户不会更改列表视图?
- r - RStudio 中 Shiny-Gadget 的问题 - 无法启动/运行 - 未返回错误
- highcharts - 我们可以在 Sunburst 图表中使用平均聚合而不是 Sum 来获得更高的水平吗
- google-analytics - 谷歌分析事件 [表单提交] 与实际情况相比过火