Flutter- 到目前为止,是否无法使用 Algolia 在 Firestore 中实现搜索功能?

Flutter- Is it impossible to implement search feature in Firestore with Algolia as of yet?

我想知道是否有任何方法可以在 Firestore 中使用 Algolia 实现搜索功能?
我搜索了一下 Dart 还不支持
那么,是完全不可能还是有其他办法让它起作用?
由于我是编程新手,请有人指导我正确的方法?
非常感谢任何帮助。

你的问题是双重的:

索引 Firebase 内容

为了搜索您在 Firestore 中的内容,您必须将其发送到 Algolia 进行索引。 通常你会从服务器或像 this.

这样的云功能来做到这一点

dart 中没有示例,因为没有针对 Dart 的服务器端 Algolia 库,因此如果您想使用 Dart,则必须使用 rest API

如果您不需要使用 Dart 并且正在寻找一个简单的解决方案,您可以使用 NodeJS 或 Python 云函数来索引您的内容。

查询 Algolia

是的,您可以使用他们的 Rest API 从 Flutter 查询 Algolia,因为 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;

我构建了一个纯Dart Algolia SDK,它独立于iOS / Android,因此可以很容易地在你的非Flutter项目中实现(比如Dart网站,DartAngular) .

您可以在 Dart 的网站上找到它,或者这里是 link https://pub.dartlang.org/packages/algolia,新版本中还有更多功能。

如果你想投稿,欢迎加入我的行列。