Sur la base des réponses de prufrofro et Frank van Puffelen ici , j'ai mis en place cette configuration qui n'empêche pas le grattage, mais peut rendre légèrement plus difficile l'utilisation de votre clé API.
Attention: Pour obtenir vos données, même avec cette méthode, on peut par exemple simplement ouvrir la console JS dans Chrome et taper:
firebase.database().ref("/get/all/the/data").once("value", function (data) {
    console.log(data.val());
});
Seules les règles de sécurité de la base de données peuvent protéger vos données.
Néanmoins, j'ai limité l'utilisation de ma clé d'API de production à mon nom de domaine comme ceci:
- https://console.developers.google.com/apis
- Sélectionnez votre projet Firebase
- Identifiants 
- Sous Clés API, choisissez votre clé de navigateur. Il devrait ressembler à ceci: " Clé de navigateur (créée automatiquement par le service Google) "
- Dans « Accepter les demandes de ces référants HTTP (sites web) », ajoutez l'URL de votre application (exemple: projectname.firebaseapp.com/*)
Maintenant, l'application ne fonctionnera que sur ce nom de domaine spécifique. J'ai donc créé une autre clé API qui sera privée pour le développement localhost.
- Cliquez sur Créer des informations d'identification> Clé API
Par défaut, comme mentionné par Emmanuel Campos, Firebase seulement whitelists localhostet votre domaine d' hébergement Firebase .
Afin de ne pas publier par erreur la mauvaise clé API, j'utilise l'une des méthodes suivantes pour utiliser automatiquement la plus restreinte en production.
Configuration de Create-React-App
Dans /env.development:
REACT_APP_API_KEY=###dev-key###
Dans /env.production:
REACT_APP_API_KEY=###public-key###
Dans /src/index.js
const firebaseConfig = {
  apiKey: process.env.REACT_APP_API_KEY,
  // ... 
};
Ma configuration précédente pour Webpack:
J'utilise Webpack pour créer mon application de production et je mets ma clé API de développement dans mon index.htmlcomme vous le feriez normalement. Ensuite, à l'intérieur de mon webpack.production.config.jsfichier, je remplace la clé chaque fois qu'elle index.htmlest copiée dans la build de production:
plugins: [
    new CopyWebpackPlugin([
      {
        transform: function(content, path) {
          return content.toString().replace("###dev-key###", "###public-key###");
        },
        from: './index.html'
      }
    ])
  ]