Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
颤振-Firebase-无法获取数据_Firebase_Flutter_Google Cloud Firestore - Fatal编程技术网

颤振-Firebase-无法获取数据

颤振-Firebase-无法获取数据,firebase,flutter,google-cloud-firestore,Firebase,Flutter,Google Cloud Firestore,这是我社交媒体应用程序上的通知页面,但当我打开该页面时,它没有显示任何内容,只是在工作(circularProgress()),这意味着数据库中没有数据,但有一个数据。它就是不能得到那个数据,你能帮我一下吗 我试图更新一切。我的颤振版本是1.24.0-3.0.pre 应用程序和数据库之间的连接没有问题,因为我可以在其他页面上获取其他数据 是否相关我不知道,但我得到了这个错误: 6.26.0-[Firebase/Firestore][I-FST000001]监视流(6000010b0818)流错误

这是我社交媒体应用程序上的通知页面,但当我打开该页面时,它没有显示任何内容,只是在工作(circularProgress()),这意味着数据库中没有数据,但有一个数据。它就是不能得到那个数据,你能帮我一下吗

我试图更新一切。我的颤振版本是1.24.0-3.0.pre

应用程序和数据库之间的连接没有问题,因为我可以在其他页面上获取其他数据

是否相关我不知道,但我得到了这个错误:

6.26.0-[Firebase/Firestore][I-FST000001]监视流(6000010b0818)流错误:“不可用:操作超时” [VERBOSE-2:profiler\u metrics\u ios.mm(186)]检索线程信息时出错:(os/kern)参数无效

这是我以前的代码,与原始代码类似,但不起作用。

import 'package:pga/pages/home.dart';
import 'package:pga/pages/post_screen.dart';
import 'package:pga/pages/profile.dart';
import 'package:pga/widgets/header.dart';
import 'package:pga/widgets/progress.dart';
import 'package:cached_network_image/cached_network_image.dart';
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:flutter/material.dart';
import 'package:timeago/timeago.dart' as timeago;

class ActivityFeed extends StatefulWidget {
  @override
  _ActivityFeedState createState() => _ActivityFeedState();
}

class _ActivityFeedState extends State<ActivityFeed> {
  getActivityFeed() async {
    QuerySnapshot snapshot = await activityFeedRef
        .doc(currentUser.id)
        .collection('feedItems')
        .orderBy('timestamp', descending: true)
        .limit(50)
        .get();
    List<ActivityFeedItem> feedItems = [];
    snapshot.docs.forEach((doc) {
      feedItems.add(ActivityFeedItem.fromDocument(doc));
      //print('Activity Feed Item: ${doc.data}');
    });
    return feedItems;
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      backgroundColor: Colors.white70,
      appBar: header(context, titleText: "Bildirimler"),
      body: Container(
          child: FutureBuilder(
        future: getActivityFeed(),
        builder: (context, snapshot) {
          if (!snapshot.hasData) {
            return circularProgress();
          } else {
            return ListView(
              children: snapshot.data,
            );
          }
        },
      )),
    );
  }
}

Widget mediaPreview;
String activityItemText;

class ActivityFeedItem extends StatelessWidget {
  final String username;
  final String userId;
  final String type; // 'like', 'follow', 'comment'
  final String mediaUrl;
  final String postId;
  final String userProfileImg;
  final String commentData;
  final Timestamp timestamp;

  ActivityFeedItem({
    this.username,
    this.userId,
    this.type,
    this.mediaUrl,
    this.postId,
    this.userProfileImg,
    this.commentData,
    this.timestamp,
  });

  factory ActivityFeedItem.fromDocument(DocumentSnapshot doc) {
    return ActivityFeedItem(
      username: doc['username'],
      userId: doc['userId'],
      type: doc['type'],
      postId: doc['postId'],
      userProfileImg: doc['userProfileImg'],
      commentData: doc['commentData'],
      timestamp: doc['timestamp'],
      mediaUrl: doc['mediaUrl'],
    );
  }

  showPost(context) {
    Navigator.push(
      context,
      MaterialPageRoute(
        builder: (context) => PostScreen(
          postId: postId,
          userId: userId, //currentUser.id,
        ),
      ),
    );
  }

  configureMediaPreview(context) {
    if (type == "like" || type == 'comment') {
      mediaPreview = GestureDetector(
        onTap: () => showPost(context),
        child: Container(
          height: 50.0,
          width: 50.0,
          child: AspectRatio(
              aspectRatio: 16 / 9,
              child: Container(
                decoration: BoxDecoration(
                  image: DecorationImage(
                    fit: BoxFit.cover,
                    image: CachedNetworkImageProvider(mediaUrl),
                  ),
                ),
              )),
        ),
      );
    } else {
      mediaPreview = Text('');
    }

    if (type == 'like') {
      activityItemText = "Gönderini Beğendi";
    } else if (type == 'follow') {
      activityItemText = "Seni Takip Ediyor";
    } else if (type == 'comment') {
      activityItemText = "Yorum Yaptı: $commentData";
    } else {
      activityItemText = "Error: Unknown type '$type'";
    }
  }

  @override
  Widget build(BuildContext context) {
    configureMediaPreview(context);

    return Padding(
      padding: EdgeInsets.only(bottom: 2.0),
      child: Container(
        color: Colors.white54,
        child: ListTile(
          title: GestureDetector(
            onTap: () => showProfile(context, profileId: userId),
            child: RichText(
              overflow: TextOverflow.ellipsis,
              text: TextSpan(
                  style: TextStyle(
                    fontSize: 14.0,
                    color: Colors.black,
                  ),
                  children: [
                    TextSpan(
                      text: username,
                      style: TextStyle(fontWeight: FontWeight.bold),
                    ),
                    TextSpan(
                      text: ' $activityItemText',
                    ),
                  ]),
            ),
          ),
          leading: CircleAvatar(
            backgroundImage: CachedNetworkImageProvider(userProfileImg),
          ),
          subtitle: Text(
            timeago.format(timestamp.toDate()),
            overflow: TextOverflow.ellipsis,
          ),
          trailing: mediaPreview,
        ),
      ),
    );
  }
}

showProfile(BuildContext context, {String profileId}) {
  Navigator.push(
      context,
      MaterialPageRoute(
          builder: (context) => Profile(
                profileId: profileId,
              )));
}

import'包:pga/pages/home.dart';
导入“package:pga/pages/post_screen.dart”;
导入“package:pga/pages/profile.dart”;
导入“package:pga/widgets/header.dart”;
导入“package:pga/widgets/progress.dart”;
导入“package:cached_network_image/cached_network_image.dart”;
导入“包:cloud_firestore/cloud_firestore.dart”;
进口“包装:颤振/材料.省道”;
将“package:timeago/timeago.dart”作为timeago导入;
类ActivityFeed扩展StatefulWidget{
@凌驾
_ActivityFeedState createState();
}
类_ActivityFeedState扩展状态{
getActivityFeed()异步{
QuerySnapshot快照=等待活动FeedRef
.doc(currentUser.id)
.collection('feedItems'))
.orderBy('timestamp',降序:true)
.限额(50)
.get();
列出feedItems=[];
snapshot.docs.forEach((doc){
添加(ActivityFeedItem.fromDocument(doc));
//打印('活动提要项:${doc.data}');
});
返回饲料项目;
}
@凌驾
小部件构建(构建上下文){
返回脚手架(
背景颜色:Colors.white70,
appBar:header(上下文,titleText:“Bildirimler”),
主体:容器(
孩子:未来建设者(
future:getActivityFeed(),
生成器:(上下文,快照){
如果(!snapshot.hasData){
返回循环进程();
}否则{
返回列表视图(
子项:snapshot.data,
);
}
},
)),
);
}
}
微件媒体预览;
字符串activityItemText;
类ActivityFeedItem扩展了无状态小部件{
最终字符串用户名;
最终字符串用户标识;
最后一个字符串类型;//“like”、“follow”、“comment”
最终字符串mediaUrl;
最后的字符串posted;
最终字符串userProfileImg;
最终字符串注释数据;
最终时间戳;
ActivityFeedItem({
这个.username,
这个.userId,
这个.类型,,
这个.mediaUrl,
这个.posted,,
这个.userProfileImg,
这是我们的数据,
这个时间戳,
});
工厂活动FeedItem.fromDocument(DocumentSnapshot文档){
返回活动FeedItem(
用户名:doc['username'],
userId:doc['userId'],
类型:doc['type'],
postId:doc['postId'],
userProfileImg:doc['userProfileImg'],
commentData:doc['commentData'],
时间戳:doc['timestamp'],
mediaUrl:doc['mediaUrl'],
);
}
showPost(上下文){
导航器。推(
上下文
材料路线(
生成器:(上下文)=>PostScreen(
posted:posted,
userId:userId,//currentUser.id,
),
),
);
}
configureMediaPreview(上下文){
if(type==“like”|| type==“comment”){
mediaPreview=手势检测器(
onTap:()=>showPost(上下文),
子:容器(
身高:50.0,
宽度:50.0,
孩子:AspectRatio(
专题:16/9,
子:容器(
装饰:盒子装饰(
图像:装饰图像(
适合:BoxFit.cover,
图像:CachedNetworkImageProvider(mediaUrl),
),
),
)),
),
);
}否则{
mediaPreview=文本(“”);
}
如果(类型=='like'){
activityItemText=“Gönderini Beğendi”;
}else if(类型==“follow”){
activityItemText=“Seni Takip Ediyor”;
}else if(类型=='comment'){
activityItemText=“Yorum Yaptı:$commentData”;
}否则{
activityItemText=“错误:未知类型“$type”;
}
}
@凌驾
小部件构建(构建上下文){
配置MediaPreview(上下文);
返回填充(
填充:仅限边缘设置(底部:2.0),
子:容器(
颜色:颜色。白色54,
孩子:ListTile(
标题:手势检测器(
onTap:()=>showProfile(上下文,profileId:userId),
孩子:RichText(
溢出:TextOverflow.省略号,
text:TextSpan(
样式:TextStyle(
字体大小:14.0,
颜色:颜色,黑色,
),
儿童:[
TextSpan(
文本:用户名,
样式:TextStyle(fontWeight:fontWeight.bold),
),
TextSpan(
文本:“$activityItemText”,
),
]),
),
),
领先:CircleAvatar(
背景图像:CachedNetworkImageProvider(userProfileImg),
),
字幕:文本(
timeago.format(timestamp.toDate()),
溢出:TextOverflow.省略号,
),
尾随:mediaPreview,
),
),
);
}
}
showProfile(BuildContext上下文,{String profileId}){
导航器。推(
上下文
材料路线(
生成器:(上下文)=>Profile(
profileId:profileId,
)));
}
这是我的更新
feedItems(){
 return Container(
          child: FutureBuilder(
        future: getActivityFeed(),
        builder: (context, snapshot) {
          if (!snapshot.hasData) {
     ------->       return circularProgress();
          } else {
     ------->       return ListView(
              children: snapshot.data,
            );
          }
        },
      ),
);
}
 return Scaffold(
      
      body: ListView(
        shrinkWrap: true,
        children: <Widget>[   
          feedItems(),
        ],
      ),
    );
  }
}