Un composant destiné aux développeurs utilisant les produits PCSoft, facilitant l'intégration des services Firebase dans vos projets WinDev, WebDev, et WinDev Mobile.
Authentification | Firestore | Storage
- WinDev version 25 ou supérieure (lien de téléchargement officiel)
- Un projet Firebase : vous pouvez en créer un nouveau via la console Firebase si vous n'en avez pas déjà un.
- Téléchargez la dernière version de
wxFirebase
dans la page de Releases de ce projet. - Ajoutez le composant à votre projet WinDev en suivant la documentation officielle.
Pour que le composant puisse accéder à un projet Firebase, vous devez au préalable le configurer en récupérant la configuration Web de votre projet dans la console Firebase.
- Allez sur console.firebase.google.com.
- Cliquez sur
Créer un projet
- Donnez un nom à votre projet (ex :
wxFirebaseWrapper
) - Google Analytics : Vous pouvez le désactiver
- Cliquez sur
Créer un projet
et attendez la finalisation
- Dans votre console de projet, cliquez sur l'icône Web
</>
- Pseudo de l'application : Donnez un nom descriptif (ex :
wxFirebaseWrapper
) - Cliquez sur Enregistrer l'application
Caution
NE COCHEZ PAS Configurer Firebase Hosting
Firebase vous affiche maintenant un code JavaScript ressemblant à ceci :
const firebaseConfig = {
apiKey: "AIzaSyBxxxxxxxxxxxxxxxxxxxxxxxx",
authDomain: "mon-projet.firebaseapp.com",
projectId: "mon-projet",
storageBucket: "mon-projet.appspot.com",
messagingSenderId: "123456789012",
appId: "1:123456789012:web:abcdef123456789"
};
Note
Pour wxFirebaseSDK
, copiez uniquement ces 3 valeurs (apiKey
, projectId
, storageBucket
)
Créez un fichier firebaseConfig.INI
dans le répertoire de votre exécutable avec la structure suivante :
[FIREBASECONFIG]
API_KEY=votre_api_key_web_ici
PROJET_ID=votre_projet_id_ici
STORAGE_BUCKET=votre_storage_bucket_ici
Clé | Description | Type |
---|---|---|
API_KEY |
La clé API Web de votre projet Firebase | chaîne |
PROJET_ID |
L'identifiant du projet Firebase | chaîne |
STORAGE_BUCKET |
L'URL du bucket de stockage du projet Firebase | chaîne |
// Initialisation avec configuration par défaut
gclConfigResponse est CConfigResponse = CFirebaseApp.initializeApp()
// Initialisation avec un chemin personnalisé vers le fichier `INI`
sCheminConfig est chaîne = "C:\MonApp\config\firebase-prod.ini"
gclConfigResponse est CConfigResponse = CFirebaseApp.initializeApp(sCheminConfig)
Note
Si aucun chemin n’est précisé, wxFirebaseSDK
recherche par défaut le fichier firebaseConfig.ini
dans le répertoire de l’exécutable.
CConfigResponse
est une classe de réponse qui hérite de CFirebaseResponse.
Elle est retournée par la méthode CFirebaseApp.initializeApp()
et permet de savoir si l’initialisation a réussi ou non, ainsi que de récupérer l’instance Firebase prête à l’emploi.
Méthode | Description |
---|---|
hasError() |
Retourne Vrai si une erreur est survenue lors de l’initialisation |
getMessage() |
Retourne le message d’erreur |
getInstance() |
Retourne l’instance de CFirebase initialisée |
gclConfigResponse est CConfigResponse = CFirebaseApp.initializeApp()
SI gclConfigResponse.hasError() ALORS
Erreur(gclConfigResponse.getMessage())
RETOUR
FIN
gclFirebase est CFirebase = gclConfigResponse.getInstance()
L’authentification permet aux utilisateurs de s'authentifier via les API REST de Firebase. Cette fonctionnalité peut inclure la connexion par email et mot de passe, l'inscription de nouveaux utilisateurs.
gclAuth est CAuth = gclFirebase.Auth()
stUserInfo est CAuth.STAuthPayload
stUserInfo.sEmail = "wx@firebase.com"
stUserInfo.sPassword = "test1234"
stUserInfo.sDisplayName = "wxFirebase"
stUserInfo.sPhoneNumber = "+2250000000000"
stUserInfo.sPhotoURL = "https://lorempicture.point-sys.com/400/300/"
stUserInfo.bEmailVerified = Faux
gclAuthReponse est CAuthReponse = gclAuth.signUpWithEmailPassword(stUserInfo)
Clé | Description | Type |
---|---|---|
sEmail |
L'adresse e-mail de l'utilisateur | chaîne |
sPassword |
Le mot de passe de l'utilisateur | chaîne |
sDisplayName |
Le nom d'affichage de l'utilisateur | chaîne |
sPhoneNumber |
Le numéro de téléphone de l'utilisateur | chaîne |
sPhotoURL |
L'URL de la photo de profil de l'utilisateur | chaîne |
bEmailVerified |
Indique si l'adresse e-mail de l'utilisateur doit être vérifiée | booléen |
Cette méthode créera un nouvel utilisateur dans la base de données du service d'authentification Firebase à chaque fois qu'elle est invoquée
gclAuthReponse est CAuthReponse = gclAuth.signInAnonymously()
gclAuthReponse est CAuthReponse = gclAuth.signInWithEmailAndPassword("wx@firebase.com", "test1234")
Clé | Description | Type |
---|---|---|
sEmail |
L'adresse e-mail de l'utilisateur | chaîne |
sMdp |
Le mot de passe de l'utilisateur | chaîne |
gclAuthReponse est CAuthReponse = gclAuth.sendPasswordResetWithEmail("wx@firebase.com")
Clé | Description | Type |
---|---|---|
sEmail |
L'adresse e-mail de l'utilisateur | chaîne |
gclAuthReponse est CAuthReponse = gclAuth.deleteAccount()
Les Providers
sont des fournisseurs d'authentification autres que Firebase, par exemple Facebook, Github, Google ou Twitter. Vous pouvez trouver les fournisseurs d'authentification actuellement pris en charge par Firebase
dans la documentation officielle de Firebase.
A l'heure actuelle le composant prends en compte les fournisseurs suivants : (Facebook, Github, Google)
stOptionProvider est STProviderOauthOptions
stOptionProvider.sClientID = CONST_CLIENT_ID
stOptionProvider.sClientSecret = CONST_CLIENT_SECRET
stOptionProvider.sScope = "email"
stOptionProvider.sURLRedirection = "http://localhost:5000/auth/facebook/callback"
gclProvider est CFacebookProvider(stOptionProvider)
gclAuthReponse est CAuthReponse = gclAuth.signInWithProvider(gclProvider)
Clé | Description | Type |
---|---|---|
sClientID |
L'identifiant client de l'application Facebook | chaîne |
sClientSecret |
Le secret client de l'application Facebook | chaîne |
sScope |
La portée des autorisations demandées | chaîne |
sURLRedirection |
L'URL de redirection après l'authentification | chaîne |
gclProvider |
Une instance de CGoogleProvider initialisée avec les options d'authentification |
STProviderOauthOptions |
stOptionProvider est STProviderOauthOptions
stOptionProvider.sClientID = CONST_CLIENT_ID
stOptionProvider.sClientSecret = CONST_CLIENT_SECRET
stOptionProvider.sScope = "user"
stOptionProvider.sURLRedirection = "http://localhost:5000/auth/github/callback"
gclProvider est CGitHubProvider(stOptionProvider)
gclAuthReponse est CAuthReponse = gclAuth.signInWithProvider(gclProvider)
Clé | Description | Type |
---|---|---|
sClientID |
L'identifiant client de l'application Github | chaîne |
sClientSecret |
Le secret client de l'application Github | chaîne |
sScope |
La portée des autorisations demandées | chaîne |
sURLRedirection |
L'URL de redirection après l'authentification | chaîne |
stOptionProvider est STProviderOauthOptions
stOptionProvider.sClientID = CONST_CLIENT_ID
stOptionProvider.sClientSecret = CONST_CLIENT_SECRET
stOptionProvider.sScope = "email"
stOptionProvider.sURLRedirection = "http://localhost:5000/auth/github/callback"
gclProvider est CGoogleProvider(stOptionProvider)
gclAuthReponse est CAuthReponse = gclAuth.signInWithProvider(gclProvider)
Clé | Description | Type |
---|---|---|
sClientID |
L'identifiant client de l'application Google | chaîne |
sClientSecret |
Le secret client de l'application Google | chaîne |
sScope |
La portée des autorisations demandées | chaîne |
sURLRedirection |
L'URL de redirection après l'authentification | chaîne |
Chacune des méthodes du service d'authentification documentées ci-dessus renverra une instance de CAuthReponse
avec les accesseurs suivants :
Méthode | Description |
---|---|
hasError() |
Retourne Vrai si erreur |
getMessage() |
Retourne le message d’erreur |
getUser() |
Données de l’utilisateur connecté |
gclAuthReponse est CAuthReponse = gclAuth.signInWithEmailAndPassword("wx@firebase.com", "test1234")
SI gclAuthReponse.hasError() ALORS
Info(gclAuthReponse.getMessage())
SINON
Info(gclAuthReponse.getUser())
FIN
Les contributions sont les bienvenues ! Pour signaler un bug ou proposer des fonctionnalités, veuillez soumettre une issue ou une pull request. Plus sur comment contributer.
Kouadio Fabrice Nguessan 💻 📖 |
Madara 💻 |
MIT