iOS devices doesn't recieve PUSH notifications

Hi,

I’m new on Futter and I have a problem with iOS devices and PUSH notifications. I have this code and it works perfectly on Android devices:

// 🔔 Notificació PUSH al propietari
      final solicitanteDoc =
          await _firestore.collection("usuarios").doc(_userId).get();
      final solicitanteEmail = solicitanteDoc["email"] ?? "";

      final fechaTimestamp = datos["fecha"] as Timestamp;
      final formattedFecha = DateFormat(
        "EEEE d 'de' MMMM',' y",
        'es_ES',
      ).format(fechaTimestamp.toDate());

      final url = Uri.parse(
        "https://europe-west1xxx.cloudfunctions.net/sendPushNotificationNuevaSolicitud",
      );

      await http.post(
        url,
        headers: {"Content-Type": "application/json"},
        body: jsonEncode({
          "propietarioId": propietarioId,
          "tipoGuardia": datos["tipoGuardia"],
          "fecha": {
            "_seconds": fechaTimestamp.seconds,
            "_nanoseconds": fechaTimestamp.nanoseconds,
          },
          "solicitanteEmail": solicitanteEmail,
        }),
      );

      ScaffoldMessenger.of(context).showSnackBar(
        SnackBar(content: Text("Solicitud enviada correctamente.")),
      );
    } catch (e) {
      print("❌ Error al crear la solicitud: $e");
      ScaffoldMessenger.of(
        context,
      ).showSnackBar(SnackBar(content: Text("Error al enviar la solicitud.")));
    }
  }

And this is the code at functions/index.ts:

export const sendPushNotificationNuevaSolicitud = functions.https.onRequest(
  {region: "europe-west1"},
  async (req, res) => {
    try {
      const {
        propietarioId,
        tipoGuardia,
        fecha,
        solicitanteEmail,
      } = req.body;

      if (!propietarioId || !tipoGuardia || !fecha || !solicitanteEmail) {
        res.status(400).send("Faltan datos para enviar la notificación.");
        return;
      }

      // 🔹 Format segur per a la data
      let fechaFormateada = "fecha desconocida";
      if (fecha._seconds) {
        const date = new Date(fecha._seconds * 1000);
        const fechaLocal = new Date(date.getTime() + 2 * 60 * 60 * 1000); // +2
        fechaFormateada = fechaLocal.toLocaleDateString("es-ES", {
          weekday: "long",
          day: "numeric",
          month: "long",
          year: "numeric",
        });
      }

      const usuario = await admin
        .firestore()
        .collection("usuarios")
        .doc(propietarioId)
        .get();

      const token = usuario.data()?.fcmToken;

      if (!token) {
        res.status(200).send("El usuario no tiene token FCM.");
        return;
      }

      const body =
        `${solicitanteEmail} quiere hacer tu guardia de ` +
        `${tipoGuardia} del ${fechaFormateada}`;

      const response = await admin.messaging().send({
        token,
        notification: {
          title: "Nueva solicitud recibida",
          body,
        },
      });

      console.log("✅ Notificación enviada:", response);
      res.status(200).send("Notificación enviada correctamente.");
    } catch (error) {
      console.error("❌ Error al enviar notificación de solicitud:", error);
      res.status(500).send("Error al enviar notificación.");
    }
  }
);

I don’t understand what are happening because it works on Android devices, but iOS users doesn’t recieve PUSH notifications.

Thanks for your support!

IOS requires its own setup, have you done that on XCODE?