Aller au contenu
WebViewGold Du vibe coding à l'App Store
Français
Obtenir WebViewGold

Checklists backend

Publier une app Firebase sur l'App Store et Google Play : la checklist complète

Les projets Firebase Studio, Softgen et Databutton s'appuient sur Firebase Auth, Firestore, Storage et Hosting. Tout cela fonctionne dans WebViewGold, mais les popups de connexion, le fournisseur Apple, la suppression des données et les formulaires de confidentialité demandent des choix réfléchis. Parcourez cette liste avant d'envoyer le premier build.

Dès $109 en paiement unique par plateforme, ou notre équipe s'occupe de tout dès $698.

  • Garantie d'approbation – ou remboursement sous 14 jours
  • Aucun codage requis
  • Paiement unique, mises à jour gratuites
  • Support humain 24/7
  • Conçu en Allemagne depuis 2014 · ISO 27001

1. Connexion : popup, redirection ou assistant ?

La plupart du code Firebase généré appelle signInWithPopup. Dans un navigateur de bureau, cela ouvre une seconde fenêtre qui renvoie le résultat ; dans une WKWebView ou une WebView Android, la popup n'a aucun moyen fiable de revenir, et la connexion reste bloquée. Passez le flux de l'app à signInWithRedirect et traitez getRedirectResult au chargement.

La connexion par redirection a son propre piège sur les plateformes Apple : WebKit bloque le stockage tiers, si bien que l'authDomain par défaut (yourproject.firebaseapp.com) peut perdre la session pendant l'aller-retour. La solution recommandée par Firebase consiste à utiliser votre propre domaine comme authDomain : hébergez l'app sur Firebase Hosting sous votre domaine personnalisé pour que /__/auth/handler soit sur la même origine, et ajoutez ce domaine dans Authentication → Paramètres → Domaines autorisés. Définissez ensuite ce même domaine comme URL de départ dans WebViewGold.

Google comme fournisseur ajoute le blocage bien connu des WebViews (« disallowed_useragent »). Le Social Login Helper de WebViewGold le résout : définissez google_login_helper_triggers dans Config.swift et GOOGLE_LOGIN_HELPER_TRIGGERS dans Config.java avec les préfixes accounts.google.com. La connexion par e-mail et mot de passe ou par lien e-mail n'a besoin de rien de tout cela.

2. Fournisseur Apple (guideline 4.8)

Obligatoire dès que Google, Facebook ou une autre connexion tierce est proposée.

  1. Portail Apple Developer

    Activez Sign in with Apple sur votre App ID, créez un Services ID avec votre authDomain comme site web et https://YOUR-AUTH-DOMAIN/__/auth/handler comme return URL, puis créez une clé Sign in with Apple (.p8).

  2. Console Firebase

    Authentication → Méthode de connexion → Apple : saisissez le Services ID, l'Apple Team ID, le Key ID et la clé privée. Firebase génère le client secret pour vous : pas de corvée de renouvellement tous les six mois comme avec certains autres backends.

  3. Code de la web app

    const provider = new OAuthProvider("apple.com"); provider.addScope("email"); provider.addScope("name"); signInWithRedirect(auth, provider). Donnez au bouton Apple le même poids visuel qu'à celui de Google.

  4. Rien à configurer dans WebViewGold

    Le flux appleid.apple.com est détecté et géré automatiquement. Testez sur un vrai iPhone via TestFlight ; le Simulateur n'est pas un juge fiable des redirections OAuth.

3. Suppression des données utilisateur

Les deux stores exigent que les utilisateurs puissent supprimer leur compte depuis l'app, et Google veut en plus une page web pour les demandes de suppression.

  • Installez l'extension Firebase officielle « Delete User Data ». Elle supprime les documents, les nœuds Realtime Database et les fichiers Storage de l'utilisateur aux chemins que vous configurez, dès qu'un utilisateur Auth est supprimé.
  • Bouton dans l'app : appelez deleteUser(auth.currentUser). Firebase exige pour cela une connexion récente : réauthentifiez d'abord l'utilisateur (demande de mot de passe ou nouvelle redirection OAuth) et gérez proprement l'erreur auth/requires-recent-login.
  • Alternative pour les données complexes : une Cloud Function appelable qui utilise l'Admin SDK pour supprimer les données de plusieurs collections, puis auth().deleteUser(uid) ; l'extension nettoie toujours ce que vous avez configuré.
  • Une page publique /delete-account sur votre domaine qui explique le flux dans l'app et propose un formulaire de contact ; collez l'URL dans le formulaire Sécurité des données de la Play Console et mentionnez la suppression dans votre politique de confidentialité.

Excellent travail! Je n'ai jamais codé quoi que ce soit, mais j'ai réussi à travailler avec cela. Facile et rapide! Avec une grande aide des créateurs!

Lucas Dubois · CodeCanyon

4. Des règles Firestore qui résistent à un reviewer et à un hacker

Les projets générés démarrent souvent avec des règles en mode test qui autorisent tout pendant 30 jours. Firebase vous prévient par e-mail quand elles vont expirer, et l'app casse ensuite en production. Remplacez-les par des règles réservées au propriétaire avant la soumission ; voici une forme minimale et courante.

javascript
rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {
    // Chaque utilisateur possède exactement un document de profil
    match /users/{uid} {
      allow read, write: if request.auth != null && request.auth.uid == uid;
    }
    // Les items appartiennent à l'utilisateur qui les a créés
    match /items/{itemId} {
      allow read: if request.auth != null && resource.data.ownerId == request.auth.uid;
      allow create: if request.auth != null && request.resource.data.ownerId == request.auth.uid;
      allow update, delete: if request.auth != null && resource.data.ownerId == request.auth.uid;
    }
    // Tout le reste est refusé par défaut
  }
}

5. Hosting, push et domaines

SujetQue faireCôté WebViewGold
Domaine personnalisé sur HostingFirebase Hosting → Ajouter un domaine personnalisé, configurez les enregistrements DNS, attendez le certificat. Utilisez ce domaine comme authDomain et comme Site URL dans les templates d'e-mail.URL de départ dans Config.swift / Config.java ou dans le Cloud Builder
Push : FCM en directEnregistrez le bundle ID iOS et le package name Android dans le projet Firebase, téléchargez GoogleService-Info.plist et google-services.json, téléversez une clé APNs dans Cloud Messaging.kFirebasePushEnabled (iOS) et FIREBASE_PUSH_ENABLED (Android) ; firebaseTopic en option ; le jeton de l'appareil est disponible dans firebaseplayerid après getfirebaseplayerid://. Documentation : push iOS, push Android
Push : OneSignal à la placePour les segments et un tableau de bord de campagnes sans Cloud Functions ; il cohabite avec Firebase sans conflit.oneSignalID + kPushEnabled / PUSH_ENABLED ; comparatif dans le guide des fournisseurs de push
Deep linksFirebase Dynamic Links a été abandonné. Utilisez les Universal Links et App Links sur votre propre domaine pour les liens envoyés par e-mail et le partage.Associated Domains + ShowExternalLink (iOS), IS_DEEP_LINKING_ENABLED (Android)

6. Sécurité des données et confidentialité de l'app pour les signaux Firebase

Google compare les signaux des SDK présents dans le binaire avec vos réponses ; Apple attend que vous déclariez tout ce que fait l'app, contenu web compris.

  • Firebase Auth : adresse e-mail et ID utilisateur, associés à l'utilisateur. À déclarer sous « Informations personnelles » (Play) et « Coordonnées » plus « Identifiants » (Apple).
  • Contenu utilisateur dans Firestore et Storage : « Activité dans les applications » / « Contenu utilisateur ». Si les utilisateurs envoient des photos, dites-le.
  • Push FCM : le jeton de l'appareil compte comme identifiant d'appareil pour le fonctionnement de l'app. Si vous utilisez OneSignal à la place, c'est la même chose.
  • Google Analytics, si votre web app le charge : données d'utilisation à des fins d'analyse ; ce n'est pas du suivi au sens d'Apple, sauf en cas d'association avec des régies publicitaires. Crashlytics sur Android (TRACKING_EVENT) : journaux de plantage et diagnostics.
  • Ne répondez pas « aucune donnée collectée » pour passer plus vite ; une incohérence avec les signaux des SDK est un motif de refus fréquent sur Play (voir le guide des incohérences Sécurité des données).

Questions fréquentes

Dois-je ajouter les SDK natifs Firebase au projet WebViewGold ?

Non. Votre web app continue d'utiliser le SDK JavaScript. Les composants Firebase natifs n'interviennent que pour le push ou Crashlytics, et WebViewGold les intègre derrière un simple réglage de configuration.

Pourquoi la connexion Google fonctionne-t-elle dans Chrome mais pas dans mon app ?

Google bloque l'OAuth dans les WebViews intégrées. Le Social Login Helper de WebViewGold ouvre l'étape Google dans une fenêtre que Google accepte et renvoie le résultat à votre app.

La persistance hors ligne de Firestore fonctionne-t-elle dans l'app ?

Oui, IndexedDB est disponible dans WKWebView et dans la WebView Android. Activez tout de même l'écran hors ligne de WebViewGold pour le premier chargement, quand aucun cache n'existe encore.

Comment envoyer un push à un utilisateur précis ?

Enregistrez le jeton obtenu via getfirebaseplayerid:// (ou l'ID d'abonnement OneSignal) dans le document Firestore de l'utilisateur et envoyez depuis une Cloud Function avec l'Admin SDK ou l'API REST de OneSignal.

Trois façons de mettre votre app dans les stores

Même résultat, charge de travail différente de votre côté. Les trois formules incluent la garantie d'approbation et le support humain 24/7.

Faites-le vous-même

$109 par plateforme, paiement unique

La licence WebViewGold : un projet Xcode ou Android Studio prêt à l'emploi. Collez votre URL, définissez le nom et l'icône, activez les fonctionnalités, compilez et soumettez. Mises à jour gratuites à vie.

Voir les offres sur la page principale

Full Service

$698 par plateforme $798

Envoyez-nous votre URL et votre icône. Notre équipe configure, compile et livre votre app sous 72 heures, en marque blanche, projets sources inclus. Les deux plateformes pour $1,158.

Détails du Full Service Propulsé par WeSetupYourWebViewApp

Prix Soldes d'hiver valables jusqu'au 31 décembre 2026.

Prêt à publier votre app ?

Garantie d'approbation App Store & Google Play – ou remboursement sous 14 jours

Vous préférez déléguer ? Full Service : nous configurons, compilons et livrons sous 72 heures, dès $698 par plateforme. Des questions ? Chattez avec nous 24/7.

Les remboursements sont accordés aux conditions indiquées dans notre FAQ : un refus non lié au contenu par Apple et/ou Google, demandé dans les 14 jours suivant l'achat.