Трепетание - Разве невозможно реализовать функцию поиска в Firestore с Algolia? - PullRequest
0 голосов
/ 21 сентября 2018

Я хотел бы знать, есть ли способ реализовать функцию поиска в Firestore с Algolia?
Я искал и Dart пока не поддерживается.
Итак, это абсолютно невозможно илиЕсть ли другой способ заставить его работать?
Поскольку я довольно новичок в программировании, кто-нибудь, пожалуйста, подскажите мне правильный путь?
Любая помощь высоко ценится.

Ответы [ 2 ]

0 голосов
/ 19 декабря 2018

Я создал чистый Dart Algolia SDK, который не зависит от iOS / Android, поэтому его можно легко внедрить в проекты, не относящиеся к Flutter (такие как веб-сайт Dart, DartAngular).

Вы можете найтиэто на веб-сайте Dart, или здесь есть ссылка https://pub.dartlang.org/packages/algolia, и в новых выпусках появилось много других возможностей.

Если вы хотите внести свой вклад, вы можете присоединиться ко мне.

0 голосов
/ 22 сентября 2018

Ваш вопрос состоит из двух частей:

Индексация содержимого Firebase

Чтобы выполнить поиск содержимого, имеющегося в Firestore, вы должны отправить его в Algolia для индексации.Обычно это делается на сервере или в облачной функции, например this .

. В dart нет примеров, потому что нет серверной библиотеки Algolia для Dart, поэтому, если вы хотитеДля использования Dart необходимо использовать rest API

Если вам не нужно использовать Dart и вы ищете простое решение, вы можете использовать облачные функции NodeJS или Python для индексации вашегоcontent.

Запрос к Algolia

Да, вы можете запросить Algolia из Flutter, используя их Rest API , поскольку в Dart нет библиотеки на стороне клиента для Algolia.

Это будет выглядеть так:

var uri = Uri.https(
  '$your_app_id-dsn.algolia.net',
  '/1/indexes/$your_index/query',
);

var headers = {
  'X-Algolia-API-Key': your_api_key,
  'X-Algolia-Application-Id': your_app_id,
};

var data = jsonEncode({
  'query': your_query,
});

var request = await HttpRequest.request(
  uri.toString(),
  requestHeaders: headers,
  method: 'POST',
  sendData: data,
);

var json = request.responseText;
var hits = jsonDecode(json)['hits'] as List;
...