gpt4 book ai didi

firebase - flutter Firestore : FirestoreBuilder with initial data

转载 作者:行者123 更新时间:2023-12-05 01:23:46 26 4
gpt4 key购买 nike

我在制作我的第一个 Flutter 应用程序时遇到了一个问题,但没有找到任何解决方案。

我有一个渲染 Firestore 文档的 View ,有两种方法可以到达那里:

  • 从我已加载文档的列表中
  • 来自带有 uid 作为参数附加的动态链接 (args)

因此,为了在从链接到达时监听文档更改和加载数据,我使用了 FirestoreBuilder,如下所示:

    return FirestoreBuilder<EventDocumentSnapshot>(
ref: eventsRef.doc(args.uid),
builder: (context, AsyncSnapshot<EventDocumentSnapshot> snapshot, Widget? child) {
if (!snapshot.hasData) {
return Container();
}
Event? event = snapshot.requireData.data;

return Scafold(); //Rest of my rendering code
}
);


当我已经拥有数据但仍监听更改时,如何避免首次调用 Firebase?主要问题是我的英雄动画因此无法正常工作。

我尝试使用 StreamBuilderinitialDataparam 但因为它需要流,所以我不知道如何转换我的数据。

最佳答案

好吧,经过多次尝试,我自己找到了解决方案,所以我添加了可以为 null 的 Model 对象作为 initialData,但让我纠结的是如何在构建器中获取数据。您必须根据数据的来源调用不同的方法。

    return StreamBuilder(
initialData: args.event
ref: eventsRef.doc(args.uid),
builder: (context, AsyncSnapshot<dynamic> snapshot) {
// Here is the trick, when data is coming from initialData you only
// need to call requireData to get your Model
Event event = snapshot.requireData is EventDocumentSnapshot ? snapshot.requireData.data : snapshot.requireData;

return Scafold(); //Rest of my rendering code
}
);

关于firebase - flutter Firestore : FirestoreBuilder with initial data,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71883574/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com