在我的应用程序中,我使用来自 Firebase 的数据构建了一个对象列表。在 StreamBuilder 中,我检查快照是否有数据。如果没有,我将返回一个带有“正在加载...”的简单文本小部件。我的问题是,如果我转到应用程序中的另一个页面,然后再回来,您会在一瞬间看到屏幕中间显示“正在加载...”,这有点烦人。我很确定它正在从 Firebase 下载数据,并在我每次返回该页面时构建小部件。如果我不检查数据,它会给我一个我试图从 null 访问数据的数据。
有没有办法缓存已经下载的数据,如果来自 Firebase 的数据没有变化,那么就使用缓存的数据?
这是我的代码的编辑版本:
class Schedule extends StatefulWidget implements AppPage {
final Color color = Colors.green;
@override
_ScheduleState createState() => _ScheduleState();
}
class _ScheduleState extends State<Schedule> {
List<Event> events;
List<Event> dayEvents;
int currentDay;
Widget itemBuilder(BuildContext context, int index) {
// Some Code
}
@override
Widget build(BuildContext context) {
return Center(
child: StreamBuilder(
stream: Firestore.instance.collection('events').snapshots(),
builder: (context, snapshot) {
if (!snapshot.hasData) {
return Text("Loading...");
}
events = new List(snapshot.data.documents.length);
for (int i …Run Code Online (Sandbox Code Playgroud) 我需要找到我的应用程序的 Bundle ID 才能将它添加到我的 firebase 项目中。
我使用 VS Code 进行 Flutter 开发,但是关于在哪里找到包 ID 的所有在线指南都解释了如何使用 xcode 找到它,因为我有一台 PC,所以我无法使用
正如标题所解释的,我的程序总是返回最初的猜测。
就上下文而言,该计划正在尝试找到在多个商店之间分配某些产品的最佳方式。每家商店都有对未来几天预计销售商品的预测(sales_data)。该预测不一定必须是整数或大于 1(很少如此),它是统计意义上的期望。因此,如果商店的 sales_data = [0.33, 0.33, 0.33],则预计 3 天后,他们将售出 1 单位的产品。
我想最大限度地减少出售我分配的单位所需的总时间(我想以最快的速度出售它们),我的限制是我必须分配可用的单位,并且我不能分配负数的产品到一家商店。我现在可以接受非整数分配。对于我的初始分配,我将我可用的单位平均分配给所有商店。
下面是我遇到问题的代码的较短版本:
import numpy, random
from scipy.optimize import curve_fit, minimize
unitsAvailable = 50
days = 15
class Store:
def __init__(self, num):
self.num = num
self.sales_data = []
stores = []
for i in range(10):
# Identifier
stores.append(Store(random.randint(1000, 9999)))
# Expected units to be sold that day (It's unlikey they will sell 1 every day)
stores[i].sales_data = [random.randint(0, 100) / 100 for i in range(days)]
print(stores[i].sales_data)
def days_to_turn(alloc, store): …Run Code Online (Sandbox Code Playgroud) 我正在为我正在创建的应用程序手动添加数据。我必须将许多文档添加到一个集合中,所有这些文档都必须包含相同的 5 个字段。当我在 Firebase 控制台中创建新文档时,有没有办法自动创建这些字段?并且还要强制所有文档都包含这 5 个字段(这样我就不会犯错误)?
此外,有没有比从 Firebase 控制台手动添加这些数据更好的方法?例如通过JSON?