在Xcode iOS Swift中使用Algolia Search与Firebase数据库

时间:2017-10-05 15:17:31

标签: ios firebase search firebase-realtime-database algolia

我正在尝试将我的Firebase数据库与Algolia Search连接。 我按照以下链接从Algolia。 https://www.algolia.com/doc/tutorials/indexing/3rd-party-service/firebase-algolia/

它说我必须创建一个Node.js应用程序,所以我做到了。 然后创建一个名为.env的文件并从Firebase生成新的私钥(我做了什么)。

但下一步有点奇怪,因为它要求我在我提供给你的链接的“创建”部分创建一个名为index.js的JavaScript文件。 从“创建”部分我很困惑,我不知道这个链接是否是连接我的Firebase数据库和Algolia for Search的正确方法。

如果有人现在该怎么做,他会帮助我很多。 如果你有的话,请提前感谢你的建议或教程。

首先我要创建一个.env文件(这是文件的名称而不是扩展名) The .env file

这是我正在谈论的“创建”部分 The "Create" section

第三步是连接Firebase数据库(我尝试连接我的) load contacts

然后我在终端中运行节点index.js。但终端表示FIREBASE FATAL ERROR:无法确定Firebase数据库URL。调用firebase.initializeApp()时,请确保包含数据库URL选项。

这是我的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

现在我创建了我的.env文件,但似乎不起作用:

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 ?

1 个答案:

答案 0 :(得分:0)

设置manuell

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

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


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