Nouveau : Datasets open source gratuits disponibles !Decouvrir →
🐹
Intermediaire 20 min Go

Deployer Go sur Firebase

Voici le tutoriel approfondi en français sur la façon de déployer Go sur Firebase :

Pourquoi Déployer Go sur Firebase ?

Dans le monde du développement moderne, les applications web et mobiles sont souvent construites autour d'une variété de technologies backend. Firebase est une plateforme complète qui offre des services pour le développement web et mobile, et il peut être utilisé pour héberger des applications backend écrites en Go. Voici quelques raisons pour lesquelles un développeur pourrait vouloir déployer son application Go sur Firebase :

  • Facilité d'hébergement : Firebase offre une infrastructure évolutrice et facile à utiliser, qui prend en charge l'hébergement des applications web et mobiles sans gérer le déploiement et la maintenance du serveur.
  • Intégration avec d'autres services Firebase : Firebase a de nombreux autres services tels que Firestore (base de données), Authentication (authentification), Hosting (hébergement statique), Functions (fonctions serverless) qui peuvent être facilement intégrés dans une application Go.
  • Scalabilité automatique : Firebase gère automatiquement la mise à l'échelle de votre application, en s'adaptant aux pics de trafic et en vous offrant des ressources supplémentaires lorsque nécessaire.

Un cas d'utilisation concret pourrait être un service de gestionnaire de tâches. En déployant ce service sur Firebase, on peut bénéficier des fonctionnalités comme le stockage sécurisé des données des utilisateurs (avec Firestore), l'authentification des utilisateurs (avec Firebase Authentication) et le hébergement de l'interface utilisateur (avec Firebase Hosting). De plus, Firebase Functions permettrait d'ajouter facilement des fonctionnalités backend comme la création, la mise à jour et la suppression de tâches.

Prerequis

Pour suivre ce tutoriel, vous aurez besoin des éléments suivants :

  • Connaissances en Go : Vous devez être familier avec le langage de programmation Go. Si vous n'êtes pas sûr de vos compétences, il existe de nombreux ressources en ligne pour apprendre Go.
  • Firebase CLI : Installez la commande-line interface (CLI) de Firebase sur votre ordinateur. Vous pouvez le faire en suivant les instructions sur le site web de Firebase : https://firebase.google.com/docs/cli
  • Go SDK : Assurez-vous que vous avez le SDK Go installé sur votre système. Vous pouvez le télécharger depuis le site officiel de Go : https://golang.org/dl/

Concepts fondamentaux

Firebase CLI

La CLI de Firebase est un outil en ligne de commande qui permet d'interagir avec les services Firebase à partir de votre terminal. Elle vous permet d'authentifier, de configurer et de déployer des applications Firebase.

## Installer Firebase CLI via npm (Node Package Manager)
npm install -g firebase-tools

## Connecter Firebase à votre compte Google
firebase login

Firebase Hosting

Firebase Hosting est un service qui permet d'héberger des sites web statiques. C'est une solution rapide et simple pour partager vos applications avec le monde.

## Initialiser Firebase Hosting dans votre projet Go
firebase init hosting

## Déployer votre application sur Firebase Hosting
firebase deploy --only hosting

Firebase Functions

Firebase Functions vous permet de créer des fonctions backend qui sont déclenchées par des événements spécifiques, comme les requêtes HTTP ou la modification de données dans Firestore.

## Initialiser Firebase Functions dans votre projet Go
firebase init functions --language go

Mise en pratique : projet fil rouge

Dans cette partie du tutoriel, nous allons construire un gestionnaire de tâches simple en utilisant Go et déployer l'application sur Firebase.

Étape 1 : Créer le projet Go

## Créer un nouveau répertoire pour votre projet
mkdir todoapp-go
cd todoapp-go

## Initialiser un nouveau projet Go
go mod init todoapp-go

Étape 2 : Installer les dépendances nécessaires

## Installez le SDK Firebase Functions pour Go
go get cloud.google.com/go/functions/metadata
go get github.com/gin-gonic/gin

Étape 3 : Créer la structure des fichiers

Créez un répertoire functions à l'intérieur de votre projet et ajoutez les fichiers suivants :

mkdir functions
touch functions/main.go
touch functions/functions.go

Étape 4 : Configurer Firebase Functions

Ajoutez le fichier firebase.json à la racine de votre projet avec le contenu suivant :

{
  "functions": {
    "source": "functions"
  }
}

Étape 5 : Implémenter les fonctions Go

functions/functions.go

Ce fichier contiendra l'implémentation des fonctions backend. Nous utiliserons Gin, un framework web léger pour Go.

package functions

import (
    "context"
    "fmt"
    "net/http"

    "cloud.google.com/go/functions/metadata"
)

// HandleHTTP est une fonction HTTP qui gère les requêtes entrantes.
func HandleHTTP(ctx context.Context, r *http.Request) (string, error) {
    md, err := metadata.FromContext(ctx)
    if err != nil {
        return "", fmt.Errorf("metadata.FromContext: %v", err)
    }
    fmt.Fprintf(r.Body, "Request headers:\n")
    for k, v := range md.Header {
        fmt.Fprintf(r.Body, "%s: %v\n", k, v)
    }
    return "", nil
}

functions/main.go

Ce fichier contient le point d'entrée de votre application Firebase Functions.

package main

import (
    "github.com/gin-gonic/gin"
    "net/http"

    "todoapp-go/functions"
)

func main() {
    r := gin.Default()

    // Définir une route pour gérer les requêtes HTTP
    r.GET("/hello", functions.HandleHTTP)

    // Lancer le serveur
    if err := r.Run(":8080"); err != nil {
        panic(err)
    }
}

Étape 6 : Déployer l'application sur Firebase

## Initialiser Firebase Functions dans votre projet Go
firebase init functions --language go

## Déployer votre application sur Firebase Hosting et Functions
firebase deploy --only hosting,functions

Erreurs frequentes et debugging

Erreur 1 : could not find Go executable. please check your PATH or specify one with the -go-executable flag.

Cause : Le chemin du fichier exécutable Go n'est pas correctement défini dans votre environnement.

Correction :

## Installer le SDK Go et vérifier que le chemin est correct
export PATH=$PATH:/usr/local/go/bin

Erreur 2 : Error: no such file or directory, stat functions/main.go

Cause : Le fichier main.go n'est pas dans le répertoire functions.

Correction :

## Assurez-vous que main.go est dans le répertoire functions
mv main.go functions/

Erreur 3 : Error: function 'HandleHTTP' not found in module

Cause : La fonction n'est pas correctement exportée ou elle ne correspond pas à un nom de fonction valide en Go.

Correction :

// Assurez-vous que la fonction est exportée avec une lettre majuscule au début du nom
func HandleHTTP(ctx context.Context, r *http.Request) (string, error) {
    // ...
}

Pour aller plus loin

  1. Intégrer Firebase Authentication : Ajoutez l'authentification à votre application Go pour permettre aux utilisateurs de se connecter et d'enregistrer leurs tâches.
  2. Utiliser Firestore avec Go : Utilisez Firestore pour stocker les données des tâches et ajoutez des fonctionnalités pour créer, lire, mettre à jour et supprimer des tâches.
  3. Déployer une API RESTful en utilisant Gin et Firebase Functions : Construisez une API RESTful complète avec Go et déployez-la sur Firebase Functions.

Défi pratique

Créez une application CLI (Command Line Interface) pour gérer les tâches avec Firebase Authentication et Firestore. Cette application devrait permettre aux utilisateurs de s'inscrire, de se connecter, d'afficher leurs tâches, de créer de nouvelles tâches, de mettre à jour des tâches existantes et de supprimer des tâches.


Ce tutoriel vous a guidé à travers le processus de création d'une application Go simple, de son déploiement sur Firebase Hosting et Firebase Functions. En suivant ces étapes, vous devriez être capable de déployer vos propres applications backend en utilisant Go et Firebase.

Besoin d'aide sur Go ?

Besoin d'aide sur un projet technique ? Decrivez-le pour des conseils personnalises.

Recevoir des conseils

Questions frequentes

Quelles sont les prérequis pour déployer un projet Go sur Firebase?
Pour déployer un projet Go sur Firebase, vous devez avoir une machine avec Docker installé et disposant d'une connexion Internet. Vous devrez également avoir un compte Firebase et un projet Firebase configuré.
Comment configurer mon projet Go pour qu'il puisse être déployé sur Firebase?
Pour configurer votre projet Go, vous devez créer une image Docker qui contient votre application. Ensuite, vous pouvez utiliser la commande `firebase deploy` pour envoyer cette image à Firebase et déployer votre application.
Quelles sont les limites en matière de taille et de performance pour les applications Go déployées sur Firebase?
Firebase impose des limites en matière de taille des fichiers, avec une taille maximale de 50 Mo pour les fichiers stockés. En ce qui concerne la performance, Firebase offre un service fiable mais il est toujours recommandé de surveiller et d'optimiser l'utilisation des ressources pour éviter les problèmes de performance.

Pages liees

Chaque semaine, le meilleur de la tech francaise

Tendances, salaires, outils et opportunites — directement dans votre boite mail.

Gratuit. Desabonnement en un clic. Pas de spam.