Je reçois ce message d'avertissement de Firebase pour chaque orderByChild
j'ai utilisé dans mes requêtes à partir de JavaScript:
AVERTISSEMENT FIREBASE: Utilisation d’un index non spécifié. Envisagez d'ajouter ".indexOn": "" at/tables à vos règles de sécurité pour de meilleures performances.
Jusqu'à présent, mes requêtes ont fonctionné assez rapidement, donc je pense qu'il n'est pas nécessaire d'inclure la variable indexOn
. Je me demande simplement quels sont les impacts négatifs?
Aussi, comment puis-je désactiver les avertissements, car ils sont assez irritants lorsque je débogue.
Si vous êtes en phase de développement, vous ne sentirez pas la différence. Mais au fur et à mesure que vos données grandissent, l'indexation vous permet de rendre vos requêtes beaucoup plus rapidement.
Lisez ceci pour en savoir plus sur les avantages de l'indexation . https://firebase.google.com/docs/database/security/indexing-data
Autant que je sache pour désactiver les avertissements, vous devez éditer le code source de Firebase . Est-il possible de désactiver toute la journalisation de Firebase sur la console?
Comme d'autres l'ont déjà dit: si vous ne définissez pas d'index, tout le filtrage est effectué côté client. Cela convient probablement au cours du développement initial, mais plus vous ajoutez de données, plus le gaspillage est important.
Pour résoudre le problème, définissez le bon index dans les règles de votre base de données Firebase. Vous pouvez modifier les règles dans le panneau Base de données de la console Firebase de votre projet . Voir définition des index de données dans la documentation de Firebase.
Existe-t-il un moyen pour moi d'observer ce qui a changé grâce à l'indexation?
Firebase fournit des outils puissants pour la commande et l'interrogation de vos données. L'indexation peut améliorer les performances de nos requêtes. considérons une table appelée dinosaur
contient des données telles que:
{
"lambeosaurus": {
"height" : 2.1,
"length" : 12.5,
"weight": 5000
},
"stegosaurus": {
"height" : 4,
"length" : 9,
"weight" : 2500
}
}
Vous devez (rechercher) la taille et la longueur des dinosaures, mais jamais en poids. vous devez donc définir une règle pour la table dinosaur
comme:
"rules": {
"dinosaurs": {
".indexOn": ["height", "length"]
}
}
En communiquant ces informations à Firebase, Firebase peut utiliser ce .indexOn
pour optimiser nos requêtes en hauteur et en longueur. Nous avons ensuite maintenu la sécurité Firebase pour interroger nos données et améliorer également les performances de nos requêtes.