'Is there anyway that I can check the Documents Snapshot FirebaseFireStore flutter

I m trying to snapshot the Collection of users and I want to check if the user has the field or not

If the users has then show this

If user doesn’t have then show this

This is the code i got so far.

              class _HalfScreenState extends State<HalfScreen> {
               final userUid = FirebaseAuth.instance.currentUser!.uid;

         @override
          Widget build(BuildContext context) {
           return StreamBuilder<DocumentSnapshot?>(
    stream: FirebaseFirestore.instance
        .collection("users")
        .doc(userUid)
        .snapshots(),
    builder: (context, snapshot) {
      if (snapshot.data != null) {
        return const Text("Loading...");
      }
      return Text(
                (snapshot.data as DocumentSnapshot)['groupId'],
              ),
             });
                  }
             }

enter image description here



Solution 1:[1]

Step by step that'd be:

  1. Get the data from the document as a Map.
  2. Check if the map contains a key for the field you're looking for.

In code that'd be something like this:

                                    // ? Indicate the type of the data in the document
return StreamBuilder<DocumentSnapshot<Map<String, dynamic>>>(
  stream: FirebaseFirestore.instance
      .collection("users")
      .doc(userUid)
      .snapshots(),
  builder: (context, snapshot) {
    if (snapshot.data != null) {
      return const Text("Loading...");
    }
              // ? Get the data (Map<String, dynamic>
    var data = snapshot.data.data();
    return Text(
           // ? Check if the field is tere
       data.containsKey('groupId') ? 'Yes, it's there' : 'Nope, field not found'
    ),
  }
);

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Frank van Puffelen