# RealtimeDB par Firebase

{% hint style="info" %}
Vous pouvez désormais utiliser des [variables de type "cloud" au](https://docs.thunkable.com/variables#app-stored-and-cloud-variables) lieu d'ajouter un composant de base de données en temps réel. Cela fonctionnera de la même manière en arrière-plan mais vous permettra d'économiser beaucoup de blocs.
{% endhint %}

{% hint style="danger" %}
Compte tenu de l'importance accrue accordée à la confidentialité des utilisateurs, nous vous conseillons vivement d'utiliser votre propre compte Firebase, à la fois pour garantir la confidentialité de vos données d'utilisateur et pour vous donner une visibilité sur la base de données elle-même. Nous fournissons notre base de données pour votre confort, mais nous pouvons également vider notre compte partagé périodiquement.
{% endhint %}

## Vue d'ensemble

* [Mise en place](#mise-en-place-de-votre-propre-compte-firebase)
* [Sauvegarder les données](#testez-la-sauvegarde-dans-votre-base-de-donnees)
* [Obtenir des données](#obtenir-des-donnees)
* [Mise à jour des données en temps réel](#mise-a-jour-des-donnees-en-temps-reel)
* [Séparer vos données en plusieurs groupes de projets](#separer-vos-donnees-dans-des-godets-de-projet)

## **Mise en place de votre propre compte Firebase**

Thunkable fournit un compte Firebase par défaut à des fins de test. Lorsque votre application est prête à être distribuée, nous vous conseillons vivement de la connecter à votre instance Firebase personnelle.

La base de données en temps réel de Firebase s'associe également bien avec la [connexion ](https://github.com/thunkable/thunkable-docs/tree/4a752596e288fca776105e94dc5e863bb9a3e25a/ios/components/screen-layout/authentication/sign-in.md)et vous pouvez utiliser un seul projet Firebase pour les deux services.

### **Créez votre projet et votre compte** [**Firebase**](https://firebase.google.com/) **gratuit**

![](https://549775582-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2Fthunkable%2F-MSx7l87fdQ-s6PLz2KX%2F-MSxCXcBoGv_eDgf69Iu%2F1.png?generation=1612713438751301\&alt=media)

### **Modifier les règles de la base de données**

Si vous utilisez la fonction d'[ouverture de session de Firebase](https://bastien-dosreis.gitbook.io/thunkable/components/untitled-7/email-sign-in-by-firebase-connexion-au-courrier-electronique-par-firebase) dans votre application, vous n'avez pas besoin de modifier les règles par défaut de la base de données qui permettent aux utilisateurs autorisés de lire et d'écrire dans la base de données.

![](https://549775582-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2Fthunkable%2F-MSx7l87fdQ-s6PLz2KX%2F-MSxCXcCGvitGoUqs-DE%2F2.png?generation=1612713438730873\&alt=media)

Dans le cas contraire, vous devrez mettre vos règles de lecture et d'écriture à jour

![](https://549775582-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2Fthunkable%2F-MSx7l87fdQ-s6PLz2KX%2F-MSxCXcDItnigbVsIbRD%2F3.png?generation=1612713438731820\&alt=media)

### **Connectez votre projet Firebase avec Thunkable**

Pour connecter votre projet Firebase avec Thunkable, vous devrez ajouter les paramètres `API Key` et la `DatabaseURL`  de Firebase dans les paramètres de l'application, que vous pouvez trouver en cliquant sur l'icône :gear: de votre application.

![](https://549775582-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2Fthunkable%2F-MSx7l87fdQ-s6PLz2KX%2F-MSxCXcE2tpSuhDCKfBE%2F4.png?generation=1612713438737572\&alt=media)

Une façon de récupérer la `API Key` et la `DatabaseURL` de Firebase est de cliquer sur l'option "Add Firebase to your web app"

![](https://549775582-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2Fthunkable%2F-MSx7l87fdQ-s6PLz2KX%2F-MSxCXcFYVtVwgjg23Zt%2F5.png?generation=1612713438762148\&alt=media)

![](https://549775582-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2Fthunkable%2F-MSx7l87fdQ-s6PLz2KX%2F-MSxCXcGGQMCTu04Qqom%2F6.png?generation=1612713438770654\&alt=media)

## **Testez la sauvegarde dans votre base de données**

Une fois votre projet connecté à votre application Thunkable, nous vous recommandons de faire un simple test et de sauvegarder une valeur dans votre base de données. Elle devrait apparaître dans votre onglet de données dans votre console Firebase.

![](https://549775582-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2Fthunkable%2F-MSx7l87fdQ-s6PLz2KX%2F-MSxCXcH7dISB8HGBoIU%2F7.png?generation=1612713438741842\&alt=media)

### **Sauvegarde des données**

![](https://549775582-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2Fthunkable%2F-MSx7l87fdQ-s6PLz2KX%2F-MSxCXcI20I_jv2R9jf_%2F8.png?generation=1612713438741489\&alt=media)

| Événement             | Description                                                            |
| --------------------- | ---------------------------------------------------------------------- |
| Save (`key`, `value`) | Demande à Firebase de sauvegarder une valeur donnée sous la clé donnée |

### **Obtenir des données**

![](https://549775582-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2Fthunkable%2F-MSx7l87fdQ-s6PLz2KX%2F-MSxCXcJKW26s5BtGsdQ%2F9.png?generation=1612713438742520\&alt=media)

| Événement            | Description                                                          |
| -------------------- | -------------------------------------------------------------------- |
| Get (`key`, `value`) | Demande à Firebase d'obtenir les valeurs stockées sous la clé donnée |

### **Mise à jour des données en temps réel**

![](https://549775582-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2Fthunkable%2F-MSx7l87fdQ-s6PLz2KX%2F-MSxCXcKrylIDhc-UdIQ%2F10.png?generation=1612713438747099\&alt=media)

| Événement                    | Description                                                                                                                        |
| ---------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- |
| AddListener (`key`)          | Demande à Firebase d'écouter une clé spécifique pour les changements dans la base de données. Requis pour le bloc **DataChanged**. |
| DataChanged (`key`, `value`) | Demande à Firebase des mises à jour de la valeur pour la clé spécifiée. Nécessite le bloc **AddListener**.                         |
| RemoveListener (`key`)       | Demandez à Firebase d'arrêter d'écouter une clé spécifique pour les changements dans la base de données                            |

### **Séparer vos données dans des godets de projet**

Vous pourriez vouloir diviser votre base de données en plusieurs espaces plus petits, également appelés "project buckets". Pour ce faire, vous devez enregistrer votre valeur en tant qu'objet et utiliser le bloc de création d'objet pour créer votre compartiment de projet. Plus de détails dans [ce post](https://community.thunkable.com/t/project-bucket-option-in-ios/31957).

![Merci à notre puissant Thunker @actech pour ce super tuyau !](https://549775582-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2Fthunkable%2F-MSx7l87fdQ-s6PLz2KX%2F-MSxCXcL3zpJLpr7nzav%2F11.png?generation=1612713438746400\&alt=media)
