Firebase 颤振给出空错误,但在重新启动后工作
我是个新手,我正在尝试从firestore收集中获取数据。我将FutureBuilder与Provider一起使用,但它在初始化时显示空错误,并在重新启动应用程序后完美运行 以下是获取数据的代码:Firebase 颤振给出空错误,但在重新启动后工作,firebase,flutter,google-cloud-firestore,stream-builder,flutter-futurebuilder,Firebase,Flutter,Google Cloud Firestore,Stream Builder,Flutter Futurebuilder,我是个新手,我正在尝试从firestore收集中获取数据。我将FutureBuilder与Provider一起使用,但它在初始化时显示空错误,并在重新启动应用程序后完美运行 以下是获取数据的代码: FutureBuilder<QuerySnapshot>( future: FirebaseFirestore.instance .collection(collec.c
FutureBuilder<QuerySnapshot>(
future: FirebaseFirestore.instance
.collection(collec.collectionProducts)
.get(),
builder: (context, snapshot) {
return Consumer<CartItemCounter>(
builder: (BuildContext context, CartItemCounter cart, _) {
if (cart.checkProductAddedToCart(model.productId)) {
return Row(....);
FutureBuilder(
未来:FirebaseFirestore.instance
.收集(集合收集产品)
.get(),
生成器:(上下文,快照){
退货消费者(
生成器:(BuildContext上下文,CartItemCounter购物车,ux){
if(cart.checkProductAddedToCart(model.productId)){
返回行(…);
错误
futurebuilder代码
用户界面代码
(此处我已更改集合名称)
我如何解决它。我已经尝试了在线上提供的所有解决方案。谢谢您始终检查结果以备将来构建器使用,即snapshot有数据 根据快照的状态设置一个切换条件或是否切换
检查官方文档中的示例错误来自何处? 根据这一点,问题来自您的
消费者
错误是什么意思?
此错误,方法“x”在null上被调用。
表示编写此x
函数的类为null
我的代码中出现此错误的原因是什么?
您的消费者
通过名称购物车
提供了一个购物车计数器
的实例。然后,您调用函数checkProductAddedToCart
错误消息告诉您,消费者
小部件提供给您的购物车
为空。这意味着消费者可能也没有找到该提供商。我希望提供商
应该有一个错误日志,告诉您没有找到CartItemCounter
可能的解决方案
尝试“提供”CartItemCounter
如何做到这一点?转到应用程序窗口小部件树的顶部,转到MaterialApp
,将其包装在MultiProvider
或ChangeNotifierProvider
中,然后将新的CartItemCounter作为值传递给用户
有关如何公开提供程序的详细信息,请阅读
您需要上传完整的日志,以便我能进一步帮助您。屏幕上是否显示一个循环压缩机指示器?是的,暂时确保集合和where条件正确,snap.data.documents.length
为您提供了什么?它为空。因为集合和条件是确定的,如果我如果给定null,那么您将什么也得不到,打印什么(itemHolder)
给你?是的,它有。因为循环进度没有显示。而且它在重新启动应用程序后开始工作。错误只在我第一次用开关块检查时出现,有数据可用,但仍然有相同的错误。在访问meth之前,尝试用if条件包装你的购物车,检查它是否为空odcheckProductAddedToCart
ChangeNotifierProvider(创建:(c)=>CartItemCounter()),是的,我已经在main.dartYes中添加了提供程序。它工作了。我正在使用ChangeNotifierProvider(创建:(c)=>CartItemCounter()。添加时,ChangeNotifierProvider.value(值:CartItemCounter()),我开始在长度上出现空错误。最后我添加了这两个。现在它开始工作了。愚蠢的我这件事花了一整天。谢谢你,伙计。嘿,它工作得很好,但我没有注意到一件事,当我重新启动应用程序时,存储在Map object中的所有数据都被删除。我如何避免它?或者我如何存储它?你必须将购物车项目保存到当应用程序启动时,设备的本地存储和从那里重新加载。最简单和最快的方法是Hive插件。研究一下。