Campo único en firestore "unique field"

Les dejo esta accion personalizada, al pulsar el boton guardar, verifica que un campo no se repita, si el campo se repite en un documento de una colección manda una alerta y no permite guardar
------------------
 "I am leaving you this custom action. Upon clicking the save button, it verifies that a field is not repeated. If the field is repeated in a document of a collection, it sends an alert and does not allow saving."


1. Deben crear una accion personalizada, les dejare el codigo al final de esta publicación, modifiquen los argumentos o agreguen conforme a su necesidad

2 Ejemplo de mi formulario


3.- En el boton deben agregar agregar la "custom actions" 

Aqui les dejo el codigo:

import 'package:cloud_firestore/cloud_firestore.dart';

Future<void> guardarAlumno(

    BuildContext context, String folio, String nombre) async {

  final FirebaseFirestore _db = FirebaseFirestore.instance;

  // Comprueba si el folio ya existe en la base de datos

  final QuerySnapshot result = await _db

      .collection('alumno')

      .where('folio', isEqualTo: folio)

      .limit(1)

      .get();

  // Si el folio ya existe, muestra una alerta y no guarda el documento

  if (result.docs.isNotEmpty) {

    showDialog(

      context: context,

      builder: (BuildContext context) {

        return AlertDialog(

          title: Text('Folio duplicado'),

          content: Text(

              'El folio del alumno ya existe. Por favor, ingrese un folio único.'),

          actions: <Widget>[

            TextButton(

              child: Text('Aceptar'),

              onPressed: () {

                Navigator.of(context).pop();

              },

            ),

          ],

        );

      },

    );

  } else {

    // Si el folio es único, guarda el documento en la base de datos

    await _db.collection('alumno').add({

      'folio': folio,

      'nombre': nombre,

    });

  }

}

1