android - 如何在 flutter 中访问 DocumentReference 数组?

标签 android firebase flutter google-cloud-firestore

the reg_events field is an array of references to the events collection.

我想访问当前登录用户的所有 reg_events。我现在有以下代码

       stream: Firestore.instance.collection('users').document(email).snapshots(),
       builder: (context, snapshot){
         if(!snapshot.hasData){
           return Text("Loading..");
         }
         return Center(
          child: new Container(
            child: new PageView.builder(
                onPageChanged: (value) {
                  setState(() {
                    currentpage = value;
                  });
                },
                controller: controller,
                itemCount: snapshot.data['reg_events'].length,
                itemBuilder: (context, index) => builder(index, snapshot.data)),
          ),
        );
       }
     ),

“ build 者”是:

builder(int index, DocumentSnapshot document) {
    return new AnimatedBuilder(
      animation: controller,
      builder: (context, child) {
        double value = 1.0;
        if (controller.position.haveDimensions) {
          value = controller.page - index;
          value = (1 - (value.abs() * .5)).clamp(0.0, 1.0);
        }

        return new Center(
          child: new SizedBox(
            height: Curves.easeOut.transform(value) * 200,
            width: Curves.easeOut.transform(value) * 1000,
            child: child,
          ),
        );
      },
      child: new Card(
        child: Text(document.data['reg_events'][0].toString(),
        textAlign: TextAlign.center,
        style: TextStyle(fontSize: 15, color: Colors.white),),
        margin: const EdgeInsets.all(10.0),
        color: index % 2 == 0 ? Colors.blue : Colors.red,
      ),
    );
  }

但它输出“'DocumentReference'的实例”。如何访问此文档引用?

最佳答案

也许它不能将 reg_event 理解为列表,所以试试这个,

 stream: Firestore.instance.collection('users').document(email).snapshots(),
  builder: (context, snapshot){
     List regEvent = new List();
     if(snapshot.hasData){
        regEvent = snapshot.data['reg_events'];
      }
      if(!snapshot.hasData){
        return Text("Loading..");
      }
      return Center(
           child: new Container(
                 child: new PageView.builder(
                         onPageChanged: (value) {
                                setState(() {
                                      currentpage = value;
                                });
                          },
                         controller: controller,
                         itemCount: regEvent.length,
                         itemBuilder: (context, index) { 
                               print(regEvent[index]);
                               return builder(index, snapshot.data)),}
                      ),
               );
         }
),

关于android - 如何在 flutter 中访问 DocumentReference 数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59281987/

相关文章:

ios - 错误 : The method 'FlatButton' isn't defined for the class 'PlatformButton'

java - 为什么我会收到空​​对象引用错误?

带有查询字符串参数的 AndroidAsync socket.io 连接

android - 谷歌地图安卓 : snap polyline to street

java - 如何使用未知节点将 Firebase 数据库中的值显示到 Firebase 回收 View ?

firebase - Flutter:一个应用程序中有多个 firebase 项目,但显示的数据不正确

java - 按下按钮时循环播放声音

java - for 循环返回空并且单击时没有显示任何内容

swift - 使用未解析的标识符 firebase 函数

flutter - 无法为Flutter应用建立APK,并显示此错误