【问题标题】:How can I use flutter provider to get data from Firestore?如何使用颤振提供程序从 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的必填参数。

标签: flutter google-cloud-firestore provider


【解决方案1】:

与其创建 DocumentSnaphot 的 FutureProvider,不如创建一个包装 DocumentSnapshot 的类。例如:

class MyClass {
   MyClass(){}

   Future<DocumentSnapshot> getData() async {
      return await FirebaseFirestore.instance.collection("User").doc("xxxx").get();
  }

}

在提供者声明中,您可能会设置类似

 ...
 Provider(create: (_) => MyClass())
 ...

这不需要您设置初始数据。

但是,对于您的情况以及您似乎正在尝试做的事情,使用 StreamProvider 会更好。

有关这方面的更多示例和详细信息,我建议您查看以下网站。您会在那里找到更多有用的信息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-22
    • 2021-03-04
    • 2021-08-18
    • 1970-01-01
    • 1970-01-01
    • 2019-11-03
    • 2020-06-08
    • 1970-01-01
    相关资源
    最近更新 更多