Deletar item de uma lista em flutter com firestore


Preciso deletar um item de uma lista de categoria.
Tenho uma liatTile própria para ele.

Essa é a categoryTile.dart

class CategoryListTile extends StatefulWidget {
  CategoryListTile(this.categoryModel);
  final CategoryModel categoryModel;

  @override
  _CategoryListTileState createState() => _CategoryListTileState();
}

class _CategoryListTileState extends State<CategoryListTile> {
  CategoryManager categoryManager;
  @override
  Widget build(BuildContext context) {
    return InkWell(
      onTap: () {
        categoryManager.deleteDataCategory();
      },
      child: Expanded(
        child: Container(
          decoration: BoxDecoration(
              borderRadius: BorderRadius.circular(16),
              color: Theme.of(context).cursorColor),
          height: 50,
          margin: const EdgeInsets.symmetric(vertical: 8, horizontal: 8),
          child: Center(
            child: Text(
              widget.categoryModel.name,
              style: TextStyle(
                  fontSize: 15,
                  fontWeight: FontWeight.bold,
                  color: Colors.white),
            ),
          ),
        ),
      ),
    );
  }
}

Tenho uma tela que está construindo essa categoryListTile com uma listView.builder.

Assim como uma classe modelo dessa categoria.

E essa é a categoryModel.dart

class CategoryModel {
  CategoryModel({
    this.id,
    this.name,
  });
  UserManager userManager = UserManager();
  CategoryModel.fromDocument(DocumentSnapshot categorySnap) {
    id = categorySnap.documentID;
    name = categorySnap.data('name') as String;
  }
  String id;
  String name;
  //Pegando usuario logado
  String get idUSer => userManager.userModel.id;
  DocumentReference get firestoreRef =>
      Firestore.instance.document('users/$idUSer');

  Future<void> saveData() async {
    await firestoreRef.collection('category').add(toMap());
  }

  Future<void> deleteData() async {
    await firestoreRef.collection('category').document(id).delete();
  }

  Map<String, dynamic> toMap() {
    return {
      'name': name,
    };
  }
}

Essa é a categoryManager.dart

class CategoryManager extends ChangeNotifier {
  CategoryManager() {
    _loadAllCategory();
  }
void update user(User model userModel){
  this.userModel = userModel;

  If(userModel != Null){
    _loadAllCategory;
    }
}

  final Firestore firestore = Firestore.instance;
  final FirebaseAuth fireAuth = FirebaseAuth.instance;

  CategoryModel categoryModel;

  Future<void> saveDataCategory(
      {CategoryModel categoryModel,
      Function onSuccess,
      Function onFail}) async {
    try {
      this.categoryModel = categoryModel;
      await categoryModel.saveData();
      onSuccess();
    } on PlatformException catch (e) {
      onFail(print(e));
    }

    notifyListeners();
  }

  Future<void> deleteDataCategory() async {
    categoryModel.deleteData();

    notifyListeners();
  }

  List<CategoryModel> allCategory = ();

  Future<void> loadAllCategory() async {
    firestore
        .collection('users')
        .document(userModel.id)
        .collection('category')
        .snapshots()
        .listen(
      (snapshot) {
        allCategory = snapshot.documents
            .map((d) => CategoryModel.fromDocument(d))
            .toList();
        notifyListeners();
      },
    );
    notifyListeners();
  }
}

Como faço para deletar o item na lista e no firebase?