小编Sem*_*maz的帖子

RenderViewport 期望有一个 RenderSliv​​er 类型的子级,但收到了一个 RenderErrorBox 类型的子级

我使用 SliverStaggeredGrid.countBuilder 显示从 Firestore 获得的数据,没有任何问题。我想用 listview.builder 显示我的数据。

我的正常代码是这样的,我想改变它以便能够过滤。

body: CustomScrollView(
         slivers: [
           StreamBuilder<QuerySnapshot>(
             stream: FirebaseFirestore.instance
                 .collection(widget.title)
                 .orderBy("id", descending: true)
                 .snapshots(),
             builder: (context, dataSnapshot) {
               return !dataSnapshot.hasData
                   ? SliverPadding(
                       sliver: SliverToBoxAdapter(
                         child: ColorLoader(
                           dotOneColor: Colors.white,
                           dotTwoColor: Colors.white,
                           dotThreeColor: Colors.white,
                         ),
                       ),
                       padding: EdgeInsets.all(0),
                     )
                   : SliverPadding(
                       sliver: SliverStaggeredGrid.countBuilder(
                           crossAxisCount: 1,
                           staggeredTileBuilder: (_) => StaggeredTile.fit(1),
                           itemBuilder: (context, index) {
                             DataModel model = DataModel.fromJson(
                                 dataSnapshot.data!.docs[index].data()
                                     as Map<String, dynamic>);
                             return sourceInfo(model, context);
                           },
                           itemCount: dataSnapshot.data!.docs.length),
                       padding: EdgeInsets.all(0),
                     );
             },
           ),
         ],
       ),

Run Code Online (Sandbox Code Playgroud)

当我在 sliver …

dart flutter google-cloud-firestore

18
推荐指数
1
解决办法
3万
查看次数

断言失败:第 1702 行 pos 12:'center!.parent == this':不是 true

出现错误的原因是什么?

当我将调试标志放入 Streambuilder 行时,我的应用程序在进入主屏幕之前就冻结了。

body: CustomScrollView(
        slivers: [
          StreamBuilder<QuerySnapshot>(
            stream: FirebaseFirestore.instance
                .collection('posts')
                .limit(10)
                .orderBy('id', descending: true)
                .snapshots(),
            builder: (BuildContext context,
                AsyncSnapshot<QuerySnapshot> dataSnapshot) {
              return !dataSnapshot.hasData
                  ? SliverToBoxAdapter(
                      child: linearProgress(),
                    )
                  : SliverStaggeredGrid.countBuilder(
                      crossAxisCount: 1,
                      staggeredTileBuilder: (val) => StaggeredTile.fit(1),
                      itemBuilder: (context, index) {
                        DataModel model = DataModel.fromJson(
                            dataSnapshot.data!.docs[index].data()
                                as Map<String, dynamic>);
                        return sourceInfo(model, context);
                      },
                      itemCount: dataSnapshot.data!.docs.length);
            },
          ),
        ],
      ),
Run Code Online (Sandbox Code Playgroud)

我将相关代码导入SliverPadding时没有问题。编辑后的代码。

StreamBuilder<QuerySnapshot>(
            stream: FirebaseFirestore.instance
                .collection('posts')
                .limit(10)
                .orderBy('id', descending: true)
                .snapshots(),
            builder: (BuildContext context,
                AsyncSnapshot<QuerySnapshot> dataSnapshot) {
              return !dataSnapshot.hasData
                  ? SliverPadding( …
Run Code Online (Sandbox Code Playgroud)

dart firebase flutter google-cloud-firestore

6
推荐指数
1
解决办法
507
查看次数

Imagepicker“XFile”不是类型转换中“File”类型的子类型并且 Firebase 存储图像上传错误

我正在尝试使用 imagepicker 从图库中选择图像并将其上传到 firebasestorage。当应用程序运行时,它会给出错误“无法打开文件,path = ''(操作系统错误:错误地址,errno = 14)和未处理的异常:类型'XFile'不是类型转换中'File'类型的子类型” 。

GestureDetector(
                  onTap: () => pickPhotoFromGallery(),
                  child: CircleAvatar(
                    radius: 70,
                    // ignore: unnecessary_null_comparison
                    child: (_imageFile != null)
                        ? Image.file(_imageFile)
                        : Image.asset('assets/images/icon.png'),
                  ),
                ),

Future pickPhotoFromGallery() async {
    File imageFile =
        (await _imagePicker.pickImage(source: ImageSource.gallery)) as File;

    setState(() {
      _imageFile = imageFile;
    });
  }
Run Code Online (Sandbox Code Playgroud)

当我单击“保存”按钮时,它显示“断言失败:第 127 行第 12 行:‘file.absolute.existsSync()’:不正确。” 我遇到了错误。

onPressed: uploading ? null : () => uploadImageAndSaveItemInfo(),
Run Code Online (Sandbox Code Playgroud)
  uploadImageAndSaveItemInfo() async {
    setState(() {
      uploading = true;
    });

    String imageDownloadUrl = await uploadItemImage(_imageFile);

    saveItemInfo(imageDownloadUrl);
    saveItemInfoCategory(imageDownloadUrl); …
Run Code Online (Sandbox Code Playgroud)

firebase flutter firebase-storage

4
推荐指数
1
解决办法
7495
查看次数