【问题标题】:how to print value from firestore in flutter如何在flutter中从firestore打印值
【发布时间】:2020-04-10 07:56:09
【问题描述】:

如何打印字段值。

我尝试过的:

print(documents[index].data['Likes.$usersId']);

其实我需要这个来切换图标。

谢谢。

更新:

Widget build(BuildContext context) {
    return Container(
      child: StreamBuilder<QuerySnapshot>(
          stream: UserManagement().getPostsStream(),
          builder: (_, snapshot) {
            if (snapshot.connectionState == ConnectionState.waiting) {
              return Center(
                child: CircularProgressIndicator(),
              );
            } else {
              final List<DocumentSnapshot> documents = snapshot.data.documents;
              return ListView.builder(
                  itemCount: documents.length,
                  itemBuilder: (_, index) {
                    return Card(
                      elevation: 4,
                      child: Padding(
                        padding: EdgeInsets.only(left: 10.0, top: 10),
                        child: InkWell(
                          onTap: () => navigateToDetail(
                            documents[index],
                            documents[index].data["Userid"],
                          ),
                          child: Column(
                            crossAxisAlignment: CrossAxisAlignment.start,
                            mainAxisSize: MainAxisSize.min,
                            children: <Widget>[
                              new Row(
                                children: <Widget>[
                                  Container(
                                    width: 45,
                                    height: 45,
                                    decoration: BoxDecoration(
                                      image: DecorationImage(
                                        image: NetworkImage(
                                            documents[index].data["User Pic"]),
                                        fit: BoxFit.cover,
                                      ),
                                      borderRadius: BorderRadius.all(
                                          Radius.circular(50.5)),
                                    ),
                                  ),
                                  Padding(
                                    padding: EdgeInsets.only(left: 15),
                                    child: Text(
                                      documents[index].data["Name"],
                                      style: TextStyle(
                                          fontWeight: FontWeight.w600,
                                          fontSize: 18),
                                    ),
                                  ),
                                ],
                              ),
                              Padding(
                                padding: EdgeInsets.only(left: 60, bottom: 10),
                                child: Text(
                                  DateFormat.yMMMd().add_jm().format(
                                      DateTime.parse(documents[index]
                                          .data["Creation Time"]
                                          .toDate()
                                          .toString())),
                                  style: TextStyle(
                                      color: Colors.black38, fontSize: 12),
                                ),
                              ),
                              Flexible(
                                child: Padding(
                                  padding: EdgeInsets.only(left: 75, right: 15),
                                  child: Text(
                                    documents[index].data["Description"],
                                    style: TextStyle(fontSize: 16),
                                  ),
                                ),
                              ),
                              Padding(
                                padding: EdgeInsets.only(
                                    left: 75, top: 15, bottom: 8),
                                child: Text(
                                  documents.length.toString() +
                                      "Files uploaded",
                                  style: TextStyle(
                                      color: Colors.blueAccent,
                                      fontSize: 14,
                                      fontStyle: FontStyle.italic),
                                ),
                              ),
                              Divider(),
                              new Row(
                                children: <Widget>[
                                  Expanded(
                                    child: Row(
                                      children: <Widget>[
                                        IconButton(
                                          onPressed: () {
                                            print(documents[index].data['Likes.$usersId']);
                                          },
                                          icon: documents[index].data['$usersId'] == true ?  Icon(Icons.favorite,
                                              color: Colors.redAccent,
                                              size: 23.0) :  Icon(Icons.favorite_border,
                                              color: Colors.redAccent,
                                              size: 23.0)
                                        ),
                                        /*Text(documents[index].data['Likes'].length.toString()),*/
                                      ],
                                    ),
                                  ),
                                  Expanded(
                                    child: IconButton(
                                      onPressed: () {
                                        navigateToDetail(documents[index],
                                          documents[index].data["Userid"],);
                                      },
                                      icon: Icon(
                                        Icons.chat_bubble_outline,
                                        color: Colors.blue,
                                        size: 23.0,
                                      ),
                                    ),
                                  ),
                                  Expanded(
                                    child: IconButton(
                                      onPressed: () {},
                                      icon: Icon(
                                        Icons.near_me,
                                        color: Colors.blue,
                                        size: 23.0,
                                      ),
                                    ),
                                  ),
                                ],
                              ),
                            ],
                          ),
                        ),
                      ),
                    );
                  });
            }
          }),
    );
  }

这是为了获取帖子:

Stream<QuerySnapshot> getPostsStream() {
    return Firestore.instance.collection("Posts").orderBy(
        "Creation Time", descending: true).snapshots();
  }

【问题讨论】:

  • 有什么问题
  • 打印为空。
  • 添加访问文档的完整代码
  • 这对你有什么好处print(snapshot.data.documents)
  • [Instance of 'DocumentSnapshot']

标签: firebase flutter dart google-cloud-firestore flutter-layout


【解决方案1】:

改变这个:

print(documents[index].data['Likes.$usersId']);

进入这个:

print(documents[index].data['Likes'][usersId]);

【讨论】:

  • 我认为应该是print(documents[index].data['Likes'][usersId]); 谢谢这工作正常。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-12-22
  • 2021-09-27
  • 1970-01-01
  • 1970-01-01
  • 2020-07-27
  • 1970-01-01
  • 2020-03-06
相关资源
最近更新 更多