2017-10-05 6 views
0

J'essaie de connecter ma base de données Firebase avec Algolia Search. Je suis ce lien suivant d'Algolia. https://www.algolia.com/doc/tutorials/indexing/3rd-party-service/firebase-algolia/Utilisez Algolia Recherche avec base de données Firebase dans Xcode iOS Swift

Il est dit que j'ai créé une application Node.js, donc je l'ai fait. Ensuite, pour créer un fichier appelé .env et générer une nouvelle clé privée à partir de Firebase (ce que j'ai fait).

Mais l'étape suivante est un peu étrange car il me demande de créer un fichier JavaScript appelé index.js dans la section "Créer" du lien que je vous fournis. Dans la section "Créer", je suis très confus, et je ne sais pas si ce lien est une bonne façon de connecter ma base de données Firebase et Algolia pour la recherche.

Si quelqu'un maintenant comment faire cela, il m'aidera beaucoup. Merci d'avance pour vos conseils ou tutoriels si vous avez.

Tout d'abord je suis arrivé à créer un fichier .env (ce qui est le nom du fichier non une extension) The .env file

Voici la section « Créer » ce dont je parle The "Create" section

Troisième étapes est pour connecter la base de données Firebase (j'essaie de connecter le mien) load contacts

Ensuite, je dois exécuter le noeud index.js dans le terminal. Mais le terminal a déclaré FIREBASE FATAL ERROR: Impossible de déterminer l'URL de la base de données Firebase. Veillez à inclure l'option URL de la base de données lors de l'appel de firebase.initializeApp().

Voici mon fichier index.js:

var dotenv = require('dotenv'); 
var firebaseAdmin = require("firebase-admin"); 
var algoliasearch = require('algoliasearch'); 

// load values from the .env file in this directory into process.env 
dotenv.load(); 

// configure firebase 
var serviceAccount = require("./serviceAccountKey.json"); 
firebaseAdmin.initializeApp({ 
    credential: firebaseAdmin.credential.cert(serviceAccount), 
    databaseURL: process.env.FIREBASE_DATABASE_URL // Here the error 
}); 
var database = firebaseAdmin.database(); 

var algolia = algoliasearch(process.env.ALGOLIA_APP_ID, process.env.ALGOLIA_API_KEY); 

// Index for Algolia with my database 
var index = algolia.initIndex('users'); 

// Begin import 
var contactsRef = database.ref("/users"); // My table calls users in firebase 
contactsRef.once('value', initialImport); 
function initialImport(dataSnapshot) { 
    // Array of data to index 
    var objectsToIndex = []; 
    // Get all objects 
    var values = dataSnapshot.val(); 
    // Process each child Firebase object 
    dataSnapshot.forEach((function(childSnapshot) { 
    // get the key and data from the snapshot 
    var childKey = childSnapshot.key; 
    var childData = childSnapshot.val(); 
    // Specify Algolia's objectID using the Firebase object key 
    childData.objectID = childKey; 
    // Add object for indexing 
    objectsToIndex.push(childData); 
    })) 
    // Add or update new objects 
    index.saveObjects(objectsToIndex, function(err, content) { 
    if (err) { 
     throw err; 
    } 
    console.log('Firebase -> Algolia import done'); 
    process.exit(0); 
    }); 
} 
// End Algolia import 

Maintenant, mon fichier .env j'ai créé, mais il semble ne fonctionne pas:

ALGOLIA_APP_ID=TFISJH1AP3 // The name app in Algolia 
ALGOLIA_API_KEY=83bd61cd47159f... // Secret Key 
FIREBASE_DATABASE_URL=https://live-event-3989e.firebaseio.com // Maybe here it's not like that I got to write my firebase URL ? 
+0

[ici] (https://github.com/firebase/functions-samples/tree/master/fulltext-search) est un exemple –

+0

Avez-vous essayé vous-même? Parce que j'ai déjà vu cette page aujourd'hui et ne m'a pas aidé –

+0

Salut, "De la section" Créer "je suis très confus" Pouvez-vous expliquer quelle partie est confuse pour vous? Merci. – vvo

Répondre

0

Set manuell

firebase.initializeApp({ 
    databaseURL: "https://<yourURL>.firebaseio.com", 
}); 

et

const ALGOLIA_APP_ID = '<your id>'; 
const ALGOLIA_API_KEY = '<your key>'; 


// configure algolia 
const algolia = algoliasearch(
    ALGOLIA_APP_ID, 
    ALGOLIA_API_KEY 
);