如何使用颤振提供程序从 Firestore 获取数据?
Posted
技术标签:
【中文标题】如何使用颤振提供程序从 Firestore 获取数据?【英文标题】:How can I use flutter provider to get data from Firestore? 【发布时间】:2021-10-01 00:21:41 【问题描述】:我在这里使用 Future Provider 从 firestore 获取数据但它不允许我将初始数据设置为 null ???它要求我输入一种 .如何使用未来的 Provider 从 firestore 获取数据。
class MyHomePage extends StatelessWidget
final _auth = FirebaseAuth.instance;
@override
Widget build(BuildContext context)
return FutureProvider<DocumentSnapshot>(create: (_)async
return FirebaseFirestore.instance.collection("User").doc("xxxx").get();, initialData: ,child: Welcome,)
Widget Welcome (BuildContext context)
final document = Provider.of<DocumentSnapshot>(context).data;
if(document==null)
return Container(
child: Text("Loading"),);
【问题讨论】:
必须填写FutureProvider的必填参数。 【参考方案1】:与其创建 DocumentSnaphot 的 FutureProvider,不如创建一个包装 DocumentSnapshot 的类。例如:
class MyClass
MyClass()
Future<DocumentSnapshot> getData() async
return await FirebaseFirestore.instance.collection("User").doc("xxxx").get();
在提供者声明中,您可能会设置类似
...
Provider(create: (_) => MyClass())
...
这不需要您设置初始数据。
但是,对于您的情况以及您似乎正在尝试做的事情,使用 StreamProvider 会更好。
有关这方面的更多示例和详细信息,我建议您查看以下网站。您会在那里找到更多有用的信息。
https://firebase.flutter.dev/docs/firestore/usage https://pub.dev/documentation/cloud_firestore/latest/【讨论】:
以上是关于如何使用颤振提供程序从 Firestore 获取数据?的主要内容,如果未能解决你的问题,请参考以下文章
如何从 Firebase Firestore 获取数据并将其存储在列表中以在颤振小部件中使用?