ContainesValue()无法在Flatter中使用来自Firebase的DocumentSnapshot

ContainesValue()无法在Flatter中使用来自Firebase的DocumentSnapshot,firebase,flutter,dart,Firebase,Flutter,Dart,我试图读取Firebase中的一个特定字段,并根据该字段的内容确定布尔值是否为真。在做了研究之后,我发现containsValue()方法只是解决这个问题的一种方法,但是,即使我按照示例进行操作,它对我也不起作用。我得到了一个错误:“没有为类型‘Function’定义方法‘containsValue’。” import 'dart:async'; import 'package:firebase_auth/firebase_auth.dart'; import 'package:flutter/

我试图读取Firebase中的一个特定字段,并根据该字段的内容确定布尔值是否为真。在做了研究之后,我发现containsValue()方法只是解决这个问题的一种方法,但是,即使我按照示例进行操作,它对我也不起作用。我得到了一个错误:“没有为类型‘Function’定义方法‘containsValue’。”

import 'dart:async';
import 'package:firebase_auth/firebase_auth.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:url_launcher/url_launcher.dart';

class CProfilePage extends StatefulWidget {
  @override
  _CProfilePageState createState() => _CProfilePageState();
}

class _CProfilePageState extends State<CProfilePage> {
  bool admin;

  @override
  void initState() {
    super.initState();
    getBool();
      setState(() {});
  }

  getBool() async{
    final snapShot = await FirebaseFirestore.instance.collection('All Users')
        .doc(FirebaseAuth.instance.currentUser.uid).get();
    if(snapShot.exists){
      if(snapShot.data.containsValue("Y")){
        admin = true;

      }
      else{
        admin = false;
      }
    }
    return admin;
  }


  @override
  Widget build(BuildContext context) {
    return Scaffold(
      backgroundColor: Colors.grey[900],
      appBar: AppBar(
        backgroundColor: Colors.transparent,
        elevation: 0.0,
        toolbarHeight: 50.0,
      ),
      body: Column(
        children: [
          Stack(
            children: [ admin == true ?
              compProfileCard() : driverProfileCard(),
              profileImage(),
            ],
          ),
        ],
      ),
    );
  }
}
导入'dart:async';
导入“包:firebase_auth/firebase_auth.dart”;
进口“包装:颤振/cupertino.dart”;
进口“包装:颤振/材料.省道”;
导入“包:cloud_firestore/cloud_firestore.dart”;
导入“package:url_launcher/url_launcher.dart”;
类CProfilePage扩展了StatefulWidget{
@凌驾
_CProfilePageState createState()=>CProfilePageState();
}
类CProfilePageState扩展了状态{
布尔行政;
@凌驾
void initState(){
super.initState();
getBool();
setState((){});
}
getBool()异步{
最终快照=等待FirebaseFirestore.instance.collection('所有用户')
.doc(FirebaseAuth.instance.currentUser.uid).get();
if(snapShot.exists){
if(snapShot.data.containsValue(“Y”)){
admin=true;
}
否则{
admin=false;
}
}
返回管理员;
}
@凌驾
小部件构建(构建上下文){
返回脚手架(
背景颜色:颜色。灰色[900],
appBar:appBar(
背景颜色:颜色。透明,
标高:0.0,
高度:50.0,
),
正文:专栏(
儿童:[
堆叠(
children:[admin==true?
compProfileCard():driverProfileCard(),
profileImage(),
],
),
],
),
);
}
}
您可以尝试使用:

snapShot.data.data().containsValue("Y")
或:

而不是:

snapShot.data.containsValue("Y")

文档快照。数据
不是一个属性,而是一个属性。您需要这样调用它:
snapShot.data()

snapShot.data.containsValue("Y")