【问题标题】:'package:cloud_firestore/src/firestore.dart': Failed assertion: line 49 pos 12: 'app != null': is not true'package:cloud_firestore/src/firestore.dart':断言失败:第 49 行 pos 12:'app != null':不正确
【发布时间】:2020-10-30 09:48:32
【问题描述】:

每次运行我的应用程序时都会出现编译错误。我有 3 个视图,主页、黑客页面和黑客屏幕。黑客页面:包含我想展示特定类别的生活黑客的卡片。 Hacks Screen 是我控制 Firestore 内容(每个类别的 hack)的文件。主页是应用程序的主页,其中包含卡片形式的类别列表。

我的主要目标是让用户点击特定类别,然后将所选类别作为 collectionPath 并将其放入 firestore。集合(collectionPath).snapshots()

例如:

在主页中,用户单击 Travel Category --> 它导航到 Hack Screen,collectionPath 的参数为“travel”,这是我在 firestore 上的集合名称,其中包含所有旅行类别 hack。 --> 再次导航到我创建了卡片和其他选项的 Hack 页面,然后逐一显示 Life Hacks of Travel(可通过按钮控制)

问题: 它正在删除此错误,并且当我从进程中删除 Hacks Screen 并使用随机文本直接导航到 Hack Page 时,它​​工作正常,所以我认为问题出在 Hack Screen 上。

注意:我已经初始化了 FirebaseCloud Firestorepubspec.yaml

这里是我的仓库的 Github 链接:https://github.com/pranjalchaplot/Hacks-For-Life 以提供更多便利。

错误是:

D/ColorViewRootUtil(20907): nav bar mode ignore false downX 513 downY 380 mScreenHeight 1520 mScreenWidth 720 mStatusBarHeight 36 globalScale 1.125 nav mode 0 rotation 0 event MotionEvent { action=ACTION_DOWN, actionButton=0, id[0]=0, x[0]=513.0, y[0]=380.0, toolType[0]=TOOL_TYPE_FINGER, buttonState=0, classification=NONE, metaState=0, flags=0x0, edgeFlags=0x0, pointerCount=1, historySize=0, eventTime=42425289, downTime=42425289, deviceId=3, source=0x1002, displayId=0 }
D/ColorViewRootUtil(20907): nav bar mode ignore false downX 499 downY 621 mScreenHeight 1520 mScreenWidth 720 mStatusBarHeight 36 globalScale 1.125 nav mode 0 rotation 0 event MotionEvent { action=ACTION_DOWN, actionButton=0, id[0]=0, x[0]=499.0, y[0]=621.0, toolType[0]=TOOL_TYPE_FINGER, buttonState=0, classification=NONE, metaState=0, flags=0x0, edgeFlags=0x0, pointerCount=1, historySize=0, eventTime=42426777, downTime=42426777, deviceId=3, source=0x1002, displayId=0 }
I/flutter (20907): Another exception was thrown: 'package:cloud_firestore/src/firestore.dart': Failed assertion: line 49 pos 12: 'app != null': is not true.

Performing hot reload...
Reloaded 2 of 792 libraries in 662ms.
D/ColorViewRootUtil(20907): nav bar mode ignore false downX 427 downY 633 mScreenHeight 1520 mScreenWidth 720 mStatusBarHeight 36 globalScale 1.125 nav mode 0 rotation 0 event MotionEvent { action=ACTION_DOWN, actionButton=0, id[0]=0, x[0]=427.0, y[0]=633.0, toolType[0]=TOOL_TYPE_FINGER, buttonState=0, classification=NONE, metaState=0, flags=0x0, edgeFlags=0x0, pointerCount=1, historySize=0, eventTime=42507154, downTime=42507154, deviceId=3, source=0x1002, displayId=0 }
I/flutter (20907): Another exception was thrown: 'package:cloud_firestore/src/firestore.dart': Failed assertion: line 49 pos 12: 'app != null': is not true.

Performing hot reload...                                               -I/flutter (20907): ══╡ EXCEPTION CAUGHT BY WIDGETS 
LIBRARY ╞═══════════════════════════════════════════════════════════
I/flutter (20907): The following assertion was thrown building Builder(dirty):
I/flutter (20907): 'package:cloud_firestore/src/firestore.dart': Failed assertion: line 49 pos 12: 'app != null': is       
I/flutter (20907): not true.
I/flutter (20907):
I/flutter (20907): The relevant error-causing widget was:
I/flutter (20907):   MaterialApp   

Hack_Page.dart:

import 'package:flutter/material.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:main/themes/style.dart';
import 'package:main/themes/theme_text.dart';

class HackPage extends StatelessWidget {
  final Color backgroundColor;
  final String hackText;

  const HackPage({
    Key key,
    @required this.backgroundColor,
    @required this.hackText,
  }) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Container(
          alignment: Alignment.center,
          child: Text(
            "Hacks For Life",
            style: GoogleFonts.oxygen(
              textStyle: TextStyle(
                fontWeight: FontWeight.bold,
              ),
            ),
          ),
        ),
        actions: [
          GestureDetector(
            onTap: () {},
            child: Container(
              padding: EdgeInsets.symmetric(horizontal: 16),
              child: Icon(Icons.share_outlined),
            ),
          )
        ],
      ),
      body: Container(
        child: Column(
          children: [
            Container(
              margin: EdgeInsets.only(top: 35),
              child: Card(
                color: backgroundColor,
                margin: EdgeInsets.only(left: 20, right: 20),
                child: Column(
                  mainAxisAlignment: MainAxisAlignment.end,
                  mainAxisSize: MainAxisSize.min,
                  crossAxisAlignment: CrossAxisAlignment.stretch,
                  children: [
                    Stack(
                      children: [
                        Container(
                          height: 400,
                          width: 360,
                          alignment: Alignment.center,
                          child: ListTile(
                            title: Text(
                              hackText,
                              style: ThemeText.headline,
                              textAlign: TextAlign.center,
                            ),
                            tileColor: Colors.transparent,
                          ),
                        ),
                      ],
                    ),
                  ],
                ),
                shape: RoundedRectangleBorder(
                  borderRadius: BorderRadius.circular(10.0),
                ),
              ),
            ),
            SizedBox(
              height: 45,
            ),
            Row(
              mainAxisAlignment: MainAxisAlignment.center,
              children: [
                GestureDetector(
                  onTap: () {},
                  child: Column(
                    children: [
                      Container(
                          padding: EdgeInsets.symmetric(horizontal: 26),
                          child: Icon(
                            Icons.chevron_left_rounded,
                            color: Colors.white,
                            size: 50,
                          )),
                      Container(
                        margin: EdgeInsets.only(top: 5),
                        child: Text(
                          "Previous",
                          style: simpleText(),
                        ),
                      ),
                    ],
                  ),
                ),
                GestureDetector(
                  onTap: () {},
                  child: Column(
                    children: [
                      Container(
                          padding: EdgeInsets.symmetric(horizontal: 26),
                          child: Icon(
                            Icons.chevron_right_rounded,
                            color: Colors.white,
                            size: 50,
                          )),
                      Container(
                        margin: EdgeInsets.only(top: 5),
                        child: Text("Next", style: simpleText()),
                      )
                    ],
                  ),
                )
              ],
            )
          ],
        ),
      ),
    );
  }
}

Hack_Screen.dart:

import 'package:flutter/material.dart';
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:main/views/hack_page.dart';
import 'package:random_color/random_color.dart';

class HackScreen extends StatelessWidget {
  final FirebaseFirestore _firestore = FirebaseFirestore.instanceFor();
  final RandomColor _randomColor = RandomColor();

  final String collectionPath;

  HackScreen({
    Key key,
    @required this.collectionPath,
  }) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: StreamBuilder(
        stream: _firestore.collection(collectionPath).snapshots(),
        builder: (context, snapshot) {
          if (!snapshot.hasData) return _LoadingIndicator();
          return PageView.builder(
            itemCount: snapshot.data.docs.length,
            itemBuilder: (context, index) {
              final document = snapshot.data.docs[index];
              return HackPage(
                backgroundColor: _randomColor.randomColor(
                  colorBrightness: ColorBrightness.dark,
                ),
                hackText: document['hack'],
              );
            },
          );
        },
      ),
    );
  }
}

class _LoadingIndicator extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Center(
      child: CircularProgressIndicator(),
    );
  }
}

调用 Firebase Auth 后的错误:

I/flutter (20167): ══╡ EXCEPTION CAUGHT BY RENDERING LIBRARY ╞═════════════════════════════════════════════════════════
I/flutter (20167): The following assertion was thrown during performLayout():
I/flutter (20167): RenderCustomMultiChildLayoutBox object was given an infinite size during layout.
I/flutter (20167): This probably means that it is a render object that tries to be as big as possible, but it was put
I/flutter (20167): inside another render object that allows its children to 
pick their own size.
I/flutter (20167): The nearest ancestor providing an unbounded height constraint is: RenderIndexedSemantics#b3286 relayoutBoundary=up3 NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE:
I/flutter (20167):   creator: IndexedSemantics ← NotificationListener<KeepAliveNotification> ← KeepAlive ←
I/flutter (20167):     AutomaticKeepAlive ← KeyedSubtree ← SliverList ← MediaQuery ← SliverPadding ← Viewport ←
I/flutter (20167):     IgnorePointer-[GlobalKey#873d3] ← Semantics ← _PointerListener ← ⋯
I/flutter (20167):   parentData: index=0; layoutOffset=0.0 (can use size)   
I/flutter (20167):   constraints: BoxConstraints(w=360.0, 0.0<=h<=Infinity) 
I/flutter (20167):   semantic boundary
I/flutter (20167):   size: MISSING
I/flutter (20167):   index: 0
I/flutter (20167): The constraints that applied to the RenderCustomMultiChildLayoutBox were:
I/flutter (20167):   BoxConstraints(w=360.0, 0.0<=h<=Infinity)
I/flutter (20167): The exact size it was given was:
I/flutter (20167):   Size(360.0, Infinity)
I/flutter (20167): See https://flutter.dev/docs/development/ui/layout/box-constraints for more information.
I/flutter (20167): 
I/flutter (20167): The relevant error-causing widget was:
I/flutter (20167):   Scaffold
I/flutter (20167):   file:///D:/Work/Learning/Learning%20Flutter/LifeHacks_app/main/lib/views/hack_page.dart:18:12
I/flutter (20167): 
I/flutter (20167): When the exception was thrown, this was the stack:
I/flutter (20167): #0      RenderBox.debugAssertDoesMeetConstraints.<anonymous closure> (package:flutter/src/rendering/box.dart:2060:9)
I/flutter (20167): #1      RenderBox.debugAssertDoesMeetConstraints (package:flutter/src/rendering/box.dart:2128:6)
I/flutter (20167): #2      RenderBox.size=.<anonymous closure> (package:flutter/src/rendering/box.dart:1846:7)
I/flutter (20167): #3      RenderBox.size= (package:flutter/src/rendering/box.dart:1848:6)
I/flutter (20167): #4      RenderCustomMultiChildLayoutBox.performLayout (package:flutter/src/rendering/custom_layout.dart:401:5)
I/flutter (20167): #5      RenderObject.layout (package:flutter/src/rendering/object.dart:1777:7)
I/flutter (20167): #6      RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:14)
I/flutter (20167): #7      RenderObject.layout (package:flutter/src/rendering/object.dart:1777:7)
I/flutter (20167): #8      RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:14)
I/flutter (20167): #9      _RenderCustomClip.performLayout (package:flutter/src/rendering/proxy_box.dart:1306:11)
I/flutter (20167): #10     RenderObject.layout (package:flutter/src/rendering/object.dart:1777:7)
I/flutter (20167): #11     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:14)
I/flutter (20167): #12     RenderObject.layout (package:flutter/src/rendering/object.dart:1777:7)
I/flutter (20167): #13     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:14)
I/flutter (20167): #14     RenderObject.layout (package:flutter/src/rendering/object.dart:1777:7)
I/flutter (20167): #15     RenderSliverList.performLayout (package:flutter/src/rendering/sliver_list.dart:213:28)
I/flutter (20167): #16     RenderObject.layout (package:flutter/src/rendering/object.dart:1777:7)
I/flutter (20167): #17     RenderSliverEdgeInsetsPadding.performLayout (package:flutter/src/rendering/sliver_padding.dart:139:12)
I/flutter (20167): #18     RenderSliverPadding.performLayout (package:flutter/src/rendering/sliver_padding.dart:374:11)
I/flutter (20167): #19     RenderObject.layout (package:flutter/src/rendering/object.dart:1777:7)
I/flutter (20167): #20     RenderViewportBase.layoutChildSequence (package:flutter/src/rendering/viewport.dart:507:13)
I/flutter (20167): #21     RenderViewport._attemptLayout (package:flutter/src/rendering/viewport.dart:1561:12)
I/flutter (20167): #22     RenderViewport.performLayout (package:flutter/src/rendering/viewport.dart:1470:20)
I/flutter (20167): #23     RenderObject.layout (package:flutter/src/rendering/object.dart:1777:7)
I/flutter (20167): #24     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:14)
I/flutter (20167): #25     RenderObject.layout (package:flutter/src/rendering/object.dart:1777:7)
I/flutter (20167): #26     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:14)
I/flutter (20167): #27     RenderObject.layout (package:flutter/src/rendering/object.dart:1777:7)
I/flutter (20167): #28     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:14)
I/flutter (20167): #29     RenderObject.layout (package:flutter/src/rendering/object.dart:1777:7)
I/flutter (20167): #30     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:14)
I/flutter (20167): #31     RenderObject.layout (package:flutter/src/rendering/object.dart:1777:7)
I/flutter (20167): #32     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:14)
I/flutter (20167): #33     RenderObject.layout (package:flutter/src/rendering/object.dart:1777:7)
I/flutter (20167): #34     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:14)
I/flutter (20167): #35     RenderObject.layout (package:flutter/src/rendering/object.dart:1777:7)
I/flutter (20167): #36     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:14)
I/flutter (20167): #37     RenderObject.layout (package:flutter/src/rendering/object.dart:1777:7)
I/flutter (20167): #38     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:14)
I/flutter (20167): #39     RenderObject.layout (package:flutter/src/rendering/object.dart:1777:7)
I/flutter (20167): #40     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:14)
I/flutter (20167): #41     RenderObject.layout (package:flutter/src/rendering/object.dart:1777:7)
I/flutter (20167): #42     MultiChildLayoutDelegate.layoutChild (package:flutter/src/rendering/custom_layout.dart:171:12)
I/flutter (20167): #43     _ScaffoldLayout.performLayout (package:flutter/src/material/scaffold.dart:498:7)
I/flutter (20167): #44     MultiChildLayoutDelegate._callPerformLayout (package:flutter/src/rendering/custom_layout.dart:243:7)
I/flutter (20167): #45     RenderCustomMultiChildLayoutBox.performLayout (package:flutter/src/rendering/custom_layout.dart:402:14)
I/flutter (20167): #46     RenderObject._layoutWithoutResize (package:flutter/src/rendering/object.dart:1634:7)
I/flutter (20167): #47     PipelineOwner.flushLayout (package:flutter/src/rendering/object.dart:884:18)
I/flutter (20167): #48     RendererBinding.drawFrame (package:flutter/src/rendering/binding.dart:444:19)
I/flutter (20167): #49     WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:907:13)
I/flutter (20167): #50     RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:310:5)
I/flutter (20167): #51     SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1117:15)
I/flutter (20167): #52     SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1055:9)
I/flutter (20167): #53     SchedulerBinding._handleDrawFrame (package:flutter/src/scheduler/binding.dart:971:5)
I/flutter (20167): #57     _invoke (dart:ui/hooks.dart:251:10)
I/flutter (20167): #58     _drawFrame (dart:ui/hooks.dart:209:3)
I/flutter (20167): (elided 3 frames from dart:async)
I/flutter (20167):
I/flutter (20167): The following RenderObject was being processed when the exception was fired: RenderCustomMultiChildLayoutBox#e1c48 relayoutBoundary=up7 NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE:
I/flutter (20167):   creator: CustomMultiChildLayout ← AnimatedBuilder ← DefaultTextStyle ← AnimatedDefaultTextStyle ←
I/flutter (20167):     _InkFeatures-[GlobalKey#87cbd ink renderer] ← NotificationListener<LayoutChangedNotification> ←
I/flutter (20167):     PhysicalModel ← AnimatedPhysicalModel ← Material ← PrimaryScrollController ← _ScaffoldScope ←
I/flutter (20167):     Scaffold ← ⋯
I/flutter (20167):   parentData: <none> (can use size)
I/flutter (20167):   constraints: BoxConstraints(w=360.0, 0.0<=h<=Infinity) 
I/flutter (20167):   size: Size(360.0, Infinity)
I/flutter (20167): This RenderObject had the following descendants (showing 
up to depth 5):
I/flutter (20167):     child 1: RenderFlex#c6502 NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
I/flutter (20167):       child 1: RenderPadding#61c12 NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
I/flutter (20167):         child: RenderSemanticsAnnotations#5631c NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
I/flutter (20167):           child: RenderPadding#9c899 NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
I/flutter (20167):             child: RenderPhysicalShape#5fb12 NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
I/flutter (20167):       child 2: RenderConstrainedBox#38281 NEEDS-LAYOUT NEEDS-PAINT
I/flutter (20167):       child 3: RenderFlex#2b713 NEEDS-LAYOUT NEEDS-PAINT 
NEEDS-COMPOSITING-BITS-UPDATE
I/flutter (20167):         child 1: RenderSemanticsGestureHandler#a2514 NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
I/flutter (20167):           child: RenderPointerListener#d53c9 NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
I/flutter (20167):             child: RenderFlex#53d86 NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
I/flutter (20167):         child 2: RenderSemanticsGestureHandler#fbe23 NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
I/flutter (20167):           child: RenderPointerListener#eda8e NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
I/flutter (20167):             child: RenderFlex#e1f6c NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
I/flutter (20167):     child 2: RenderConstrainedBox#05703 NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
I/flutter (20167):       child: RenderSemanticsAnnotations#d4582 NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
I/flutter (20167):         child: RenderAnnotatedRegion<SystemUiOverlayStyle>#3c823 NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
I/flutter (20167):           child: RenderPhysicalModel#09da9 NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
I/flutter (20167):             child: _RenderInkFeatures#bfd47 NEEDS-LAYOUT 
NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
I/flutter (20167):     child 3: RenderStack#f13cd NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
I/flutter (20167):       child 1: RenderTransform#9e397 NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
I/flutter (20167):         child: RenderTransform#23b82 NEEDS-LAYOUT NEEDS-PAINT
I/flutter (20167): ════════════════════════════════════════════════════════════════════════════════════════════════════
I/flutter (20167): Another exception was thrown: _RenderInkFeatures object was given an infinite size during layout.
W/om.example.mai(20167): Accessing hidden field Ljava/net/Socket;->impl:Ljava/net/SocketImpl; (greylist, reflection, allowed)
I/flutter (20167): Another exception was thrown: RenderPhysicalModel object 
was given an infinite size during layout.
W/om.example.mai(20167): Accessing hidden method Ldalvik/system/CloseGuard;->get()Ldalvik/system/CloseGuard; (greylist,core-platform-api, linking, allowed)
I/flutter (20167): Another exception was thrown: RenderRepaintBoundary object was given an infinite size during layout.
W/om.example.mai(20167): Accessing hidden method Ldalvik/system/CloseGuard;->open(Ljava/lang/String;)V (greylist,core-platform-api, linking, allowed)   
W/om.example.mai(20167): Accessing hidden field Ljava/io/FileDescriptor;->descriptor:I (greylist, JNI, allowed)
I/flutter (20167): Another exception was thrown: RenderIndexedSemantics object was given an infinite size during layout.
W/om.example.mai(20167): Accessing hidden method Ljava/security/spec/ECParameterSpec;->setCurveName(Ljava/lang/String;)V (greylist, reflection, allowed)W/om.example.mai(20167): Accessing hidden method Ldalvik/system/BlockGuard;->getThreadPolicy()Ldalvik/system/BlockGuard$Policy; (greylist,core-platform-api, linking, allowed)
W/om.example.mai(20167): Accessing hidden method Ldalvik/system/BlockGuard$Policy;->onNetwork()V (greylist, linking, allowed)
W/om.example.mai(20167): Accessing hidden method Lsun/misc/Unsafe;->getObject(Ljava/lang/Object;J)Ljava/lang/Object; (greylist, linking, allowed)       
W/om.example.mai(20167): Accessing hidden method Lsun/misc/Unsafe;->getInt(Ljava/lang/Object;J)I (greylist, linking, allowed)
W/om.example.mai(20167): Accessing hidden method Lsun/misc/Unsafe;->getObject(Ljava/lang/Object;J)Ljava/lang/Object; (greylist, linking, allowed)       
W/om.example.mai(20167): Accessing hidden method Lsun/misc/Unsafe;->putInt(Ljava/lang/Object;JI)V (greylist, linking, allowed)
W/om.example.mai(20167): Accessing hidden method Lsun/misc/Unsafe;->putObject(Ljava/lang/Object;JLjava/lang/Object;)V (greylist, linking, allowed)      
W/om.example.mai(20167): Accessing hidden method Lsun/misc/Unsafe;->putObject(Ljava/lang/Object;JLjava/lang/Object;)V (greylist, linking, allowed)      
W/om.example.mai(20167): Accessing hidden method Lsun/misc/Unsafe;->putLong(Ljava/lang/Object;JJ)V (greylist, linking, allowed)
W/om.example.mai(20167): Accessing hidden method Lsun/misc/Unsafe;->putObject(Ljava/lang/Object;JLjava/lang/Object;)V (greylist, linking, allowed)      
W/om.example.mai(20167): Accessing hidden method Lsun/misc/Unsafe;->putObject(Ljava/lang/Object;JLjava/lang/Object;)V (greylist, linking, allowed)      
W/om.example.mai(20167): Accessing hidden method Lsun/misc/Unsafe;->putLong(Ljava/lang/Object;JJ)V (greylist, linking, allowed)
W/om.example.mai(20167): Accessing hidden method Lsun/misc/Unsafe;->putObject(Ljava/lang/Object;JLjava/lang/Object;)V (greylist, linking, allowed)
W/om.example.mai(20167): Accessing hidden method Lsun/misc/Unsafe;->putLong(Ljava/lang/Object;JJ)V (greylist, linking, allowed)
W/om.example.mai(20167): Accessing hidden method Lsun/misc/Unsafe;->getLong(Ljava/lang/Object;J)J (greylist,core-platform-api, linking, allowed)
W/om.example.mai(20167): Accessing hidden method Lsun/misc/Unsafe;->getLong(Ljava/lang/Object;J)J (greylist,core-platform-api, linking, allowed)
W/om.example.mai(20167): Accessing hidden method Lsun/misc/Unsafe;->putObject(Ljava/lang/Object;JLjava/lang/Object;)V (greylist, linking, allowed)
W/om.example.mai(20167): Accessing hidden method Lsun/misc/Unsafe;->putObject(Ljava/lang/Object;JLjava/lang/Object;)V (greylist, linking, allowed)
W/om.example.mai(20167): Accessing hidden method Lsun/misc/Unsafe;->getObject(Ljava/lang/Object;J)Ljava/lang/Object; (greylist, linking, allowed)
W/om.example.mai(20167): Accessing hidden method Lsun/misc/Unsafe;->putLong(Ljava/lang/Object;JJ)V (greylist, linking, allowed)
W/om.example.mai(20167): Accessing hidden method Lsun/misc/Unsafe;->putObject(Ljava/lang/Object;JLjava/lang/Object;)V (greylist, linking, allowed)
W/om.example.mai(20167): Accessing hidden method Lsun/misc/Unsafe;->putObject(Ljava/lang/Object;JLjava/lang/Object;)V (greylist, linking, allowed)
W/om.example.mai(20167): Accessing hidden method Lsun/misc/Unsafe;->putLong(Ljava/lang/Object;JJ)V (greylist, linking, allowed)

【问题讨论】:

  • 在应用执行期间,在此调用之前与 Firestore 的连接是否正常?该错误表明您在实例化之前尝试调用某些东西,我看到您的注释说您已经在 pubspec.yaml 文件中对 firestore 执行了此操作,但是我不确定这是实例化 Firestore 的正确位置,你能分享你的配置?另外,尝试在 HackScreen.dart 中创建一个新的 Firestore 实例,以测试它是否有效。
  • 是的,我在任何我想的地方都实例化了 Firestore,但为了确保这里是我的仓库的 Github 链接:github.com/pranjalchaplot/Hacks-For-Life 以提供更多便利
  • 你只是在pubspec.yaml中导入firestore的依赖,而不是实例化它。尝试使用 final _firestore = Firestore.instance; 而不是 final FirebaseFirestore _firestore = FirebaseFirestore.instanceFor(); 这样做,如果它解决了问题,请告诉我。
  • 好吧,它确实解决了错误部分,但它导致了一个空白屏幕,我的主要目标是让用户点击应用程序的任何类别,当他点击特定类别时,生活黑客是从 Firestore 数据库中检索。并相应地使用上一个和下一个按钮。你能告诉我哪里出错了吗?我已经更新了我的仓库中的代码,你检查一下。
  • 嗯,你收到任何错误日志了吗?另外,您是否能够实际获取数据?尝试记录它以确保您这样做了,这将告诉我们您的代码的 Firestore 部分是否正常工作,因为这可能有多种原因,并且没有错误消息很难确定根本原因。

标签: firebase flutter firebase-realtime-database google-cloud-firestore


【解决方案1】:

这里的第一个问题是 Firestore 的初始化方式。而不是FirebaseFirestore.instanceFor(),它应该是FirebaseFirestore.instance,正如前面在cmets中提到的那样。

final FirebaseFirestore _firestore = FirebaseFirestore.instance;

第二个问题与屏幕上的小部件有关,基于错误RenderCustomMultiChildLayoutBox object was given an infinite size during layout.

看起来屏幕试图渲染一个无限维度的小部件。尝试添加 SizedBox 作为约束或在 Widget 上定义宽度/高度通常可以解决此问题。

【讨论】:

    猜你喜欢
    • 2021-03-22
    • 2021-03-27
    • 2020-03-01
    • 2022-06-27
    • 2020-04-22
    • 2020-12-29
    • 2018-12-28
    • 2021-11-02
    • 2021-05-30
    相关资源
    最近更新 更多