PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV Mobile 2025 → Notif push WinDev Mobile 2025 : Erreur FireBase !!!!
Notif push WinDev Mobile 2025 : Erreur FireBase !!!!
Débuté par ChouLAGH, 15 oct. 2025 18:06 - 2 réponses
Membre enregistré
259 messages
Posté le 15 octobre 2025 - 18:06
Bonjour à tous,
Je sais que le sujet a été abordé plusieurs fois dans le forum, mais vraiment je ne trouve pas l"erreur.

J'ai une appli Android en Windev Mobile 2025 qui réceptionne le token et l'envoie à un WebService SOAP qui le stocke dans
une BD Hyperfile hébérgée sur PCS Cloud.

Lorsque l'appli Android demande au WS d'envoyer une notif, le WS renvoie une erreur :
=========================

Chouaib LAGHLAM <claghlam@gmail.com>
17:54 (il y a 0 minute)
À moi

Erreur lors de l'envoi du message
Appel WL :
Traitement de 'Procédure globale EnvoieAndroid' (ProcéduresGlobales.EnvoieAndroid), ligne 69
Fonction 'NotifPushEnvoie', syntaxe 2

Que s'est-il passé ?
Le service Firebase n'a pas pu traiter la notification (vérifiez que les tokens identification sont valides)

Code erreur : 690049
Niveau : erreur non fatale

Module : wd300device64.dll (01A304061 - 30.0.340.0)

Informations de débogage :
Fonction (69,29)
Informations supplémentaires :
EIT_PILEWL :
Procédure globale EnvoieAndroid (ProcéduresGlobales.EnvoieAndroid), ligne 69
EIT_COMPOSANT : ()
EIT_DATEHEURE : 15/10/2025 17:16:27
EIT_TYPE_WDFILE : <7>
EIT_IDCODE : <458752>
===================================

J'ai deux soupçons :
1) Le token n'est pas bien enregisté dans la BD :
- j'ai essayé une rubrique de type "son, image, binaire", sous-chaine=chaine binaire : ca ne marche pas
- j'ai essayé une rubrique de type chaine,de longueur 500 : ca ne marche pas.

2) je soupconne la confusion de fichiers clés :
- le fichier "google-services.json", je l'ai mis dans l'assistant de génération,
- Le fichier clé privée généré dans "comptes de service" de Firebase avec un nom "medical-..........-firebase-adminsdk-fbsvc-.......json
Je le charge dans le WS.
Voici le code de la proc du WS :
============================
PROCÉDURE EnvoieAndroid(sTypeUser est une chaîne,sMessage est une chaîne,
sContenu est une chaîne, sTitre est une chaîne, sTexteDeroulant est une chaîne, bVibration est un booléen, ...
bLED est un booléen, bSupprimable est un booléen, bApplicationActive est un booléen) : chaîne


// Variables
tabIdentifiantsAEnvoyer est un tableau de Buffers
tabIdentifiantsAEnvoyerTemp est un tableau de Buffers
ListeReponse est un tableau de Buffer
bufIdentifiant est un Buffer
tabTokensInvalides est un tableau de Buffer
nNbTokensInvalides est un entier
leToken est un Buffer
// clé privé FireBase pour envoi de notif.
// 1. Obtenir le répertoire d'exécution actuel du WebService
sRepCourant est une chaîne = fRepEnCours()

// sRepCourant vaudra : "D:\Web\WebServices\.....WS\......._WEB"

// 2. Remonter au répertoire parent (où se trouve le fichier JSON)
sRepClePrivee est une chaîne = fRepParent(sRepCourant)

// 3. Construire le chemin complet du fichier JSON
sNomFichierCle est une chaîne = "medical-.........-firebase-adminsdk-fbsvc-......json"

scheminClepriveeFireBase est une chaîne = fConstruitChemin(sRepClePrivee, sNomFichierCle)
SI fFichierExiste(scheminClepriveeFireBase)=Faux ALORS
RENVOYER "ce fichier n'existe pas: "
FIN
// ================================
// TEST SIMPLE DE NOTIFICATION : A SUPPRIMER
// ================================
// récupérer tokens à notifier
POUR TOUT EnregTokens
// Log reception token
leToken=EnregTokens.token

tabIdentifiantsAEnvoyer.Ajoute(leToken)
FIN
// notification
maNotif est un Notification
// Titre
maNotif.Titre = "Titre notif"
//
// // Son Android
maNotif.Son = ""
//
// // Icône
maNotif.Icone = "" // mettre ici l'icône pour la notification
//
// // Groupe des notifications
maNotif..Groupe = "Push"
//
// // Texte déroulant
maNotif.TexteDéroulant = "Déroulant"
//
// // Options
maNotif.Vibration = Vrai
maNotif.AffichageLED = Vrai
maNotif.Supprimable = Vrai// maNotif.ActiveApplication = bApplicationActive

//
// envoi notif

SI PAS NotifPushEnvoie(maNotif,tabIdentifiantsAEnvoyer,fChargeTexte(scheminClepriveeFireBase),tabTokensInvalides,gnTypeNotificationAndroid) ALORS
RENVOYER "Erreur lors de l'envoi du message" + RC + ErreurInfo(errComplet)
SINON
RENVOYER "Notif OK"
FIN
=================================
JE BLOQUE DEPUIS PLUSIEURS JOURS DESSUS.

Merci de votre aide.

--
Chouaïb
Membre enregistré
259 messages
Posté le 15 octobre 2025 - 18:26
En attendant une réponse de quelqu'un, j'ai stocké le token en rubrique chaine et je l'affiche.
ça donne :
Taille token : 390
ZE4AAF9M............FdnAAA=

--
Chouaïb
Membre enregistré
259 messages
Posté le 21 octobre 2025 - 12:42
Bonjour,
j'ai enfin un début de réponse à mon problème, parès avoir contacté le Support technique.
La piste : Firebase veut absolument que la variable de type Notification ait une valeur dans la propriété groupe.
Exemple : manotif.Groupe="defaut"
A quoi elle sert ?
Si vous envoyez plusieurs notifs à un mobile qui est éteint ou non joignable, lorsque le mobile se connecte et que les norifications non reçues sont du même groupe : seule la dernière est affichée.
Exemple : gestion des commandes : vous envoyez "commande en cours", "commande validée", "commande expédiée"
seule la dernière est affichée

Mais le Service technique demande de mettre à jour mon WinDev Mobile 2025 et le serveur d'application WebDev pour passer au Update 5.
J'attends que ce update soit validée niveau 2 pour retester.

J'espère que cela servira

--
Chouaïb