【问题标题】:Use Algolia Search with Firebase Database in Xcode iOS Swift在 Xcode iOS Swift 中使用 Algolia Search 和 Firebase 数据库
【发布时间】:2018-03-17 06:49:44
【问题描述】:

我正在尝试将我的 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 以进行搜索的正确方法。

如果有人现在如何做到这一点,他会帮助我很多。 提前感谢您的建议或教程。

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

这是我所说的“创建”部分

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

然后我必须在终端中运行 node index.js。但是终端说 FIREBASE FATAL ERROR: Can't determine Firebase Database 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 ?

【问题讨论】:

  • here 是一个示例
  • 你自己试过了吗?因为我今天已经看到了这个页面,并没有帮助我
  • 嗨,“从“创建”部分我很困惑”你能解释一下哪个部分让你感到困惑吗?谢谢。
  • 好的,我将使用我遇到问题的部分的屏幕截图来编辑我的问题。

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


【解决方案1】:

设置手动

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
);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-14
    • 2016-04-10
    • 1970-01-01
    • 2023-04-03
    • 1970-01-01
    相关资源
    最近更新 更多