Firebase peut-il effectuer des opérations SQL "LIKE" ?
Firebase est un outil populaire pour le stockage de données, et sa structure de données ressemble souvent à celle de bases de données relationnelles. Cependant, Firebase ne prend pas en charge nativement les opérations SQL (Structured Query Language) telles que LIKE. Néanmoins, il existe des moyens élégants d'obtenir une fonctionnalité similaire.
Avec l'avènement de Cloud Functions pour Firebase, l'intégration de Firebase à Algolia via Functions offre une solution efficace. Cette approche permet une maintenance réduite tout en entraînant potentiellement des coûts supplémentaires par rapport à une solution personnalisée.
Alternativement, chacun peut implémenter sa propre fonctionnalité de recherche. Toutefois, en raison de la complexité et de l’importance des fonctionnalités de recherche, il est généralement conseillé de recourir à des outils tiers évolutifs. ElasticSearch est une option populaire pour Firebase, qui peut être intégrée via des processus de surveillance et d'indexation.
Indexation des données :
var Firebase = require('firebase'); var ElasticClient = require('elasticsearchclient') // initialize ElasticSearch API var client = new ElasticClient({ host: 'localhost', port: 9200 }); // listen for Firebase data changes var fb = new Firebase('<INSTANCE>.firebaseio.com/widgets'); fb.on('child_added', createOrUpdateIndex); fb.on('child_changed', createOrUpdateIndex); fb.on('child_removed', removeIndex); function createOrUpdateIndex(snap) { client.index(this.index, this.type, snap.val(), snap.name()) .on('data', function(data) { console.log('indexed ', snap.name()); }) .on('error', function(err) { /* handle errors */ }); } function removeIndex(snap) { client.deleteDocument(this.index, this.type, snap.name(), function(error, data) { if( error ) console.error('failed to delete', snap.name(), error); else console.log('deleted', snap.name()); }); }
Interrogation de l'index :
<script src="elastic.min.js"></script> <script src="elastic-jquery-client.min.js"></script> <script> ejs.client = ejs.jQueryClient('http://localhost:9200'); client.search({ index: 'firebase', type: 'widget', body: ejs.Request().query(ejs.MatchQuery('title', 'foo')) }, function (error, response) { // handle response }); </script>
Ces étapes permettent des requêtes flexibles et la maintenance d'un index performant, ce qui en fait une alternative viable au type SQL opérations dans Firebase.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!