0

为此绞尽脑汁。

我无法解决这个问题,我的代码产生了这个错误:

LiveQuery does not work, if there is no ParseConnectivityProvider provided.

我尝试使用 liveQueryURL 并没有运气。颤振文档没有关于如何从服务器实现此 url 的具体示例。我从 javaScript 视频和文档中假设这是我创建的自定义子域,例如 customdomain.b4a.io,它使最终 url 为“wss://customdomain.b4a.io”。

我查看了 Parse().initialize 的“connectivityProvider:”arg,但没有发现任何具体的实现方法。

这只是一个飞镖演示项目。非常感谢任何帮助或想法!

编辑:这篇文章根本没有解决我的问题。它也很老了。

这是否可能因为这是一个飞镖程序而不是颤振而不起作用?没想到会是这样……

代码:

import 'package:parse_server_sdk/parse_server_sdk.dart';

Future<void> main(List<String> arguments) async {
  final keyApplicationId = 'XXX';
  final keyClientKey = 'XXX';
  final keyParseServerUrl = 'https://parseapi.back4app.com';
  final liveQueryURL = 'wss://XXX.b4a.io';

  await Parse().initialize(
    keyApplicationId,
    keyParseServerUrl,
    clientKey: keyClientKey,
    liveQueryUrl: liveQueryURL,
    autoSendSessionId: true,
    debug: true,
  );

  final LiveQuery liveQuery = LiveQuery();
  QueryBuilder<ParseObject> query = QueryBuilder<ParseObject>(ParseObject('Color'));
  Subscription subscription = await liveQuery.client.subscribe(query);

  subscription.on(LiveQueryEvent.create, (value) {
    print('Object: ' + value['color']);
    print((value as ParseObject).get('color'));
  });
}
4

2 回答 2

1

不幸的是,在颤振中解析实时查询不适用于 https 服务器 url。我以前遇到过这个问题,这让我抓狂!我所做的是在解析服务器的后端,同时提供 http 和 https 服务器。而在 Flutter 的客户端,只需连接到 http 服务器进行实时查询!这很好用

于 2021-09-03T09:38:42.390 回答
1

来自https://github.com/parse-community/Parse-SDK-Flutter/issues/543#issuecomment-912783019

请提供自定义ParseConnectivityProviderconnectivityProviderin Parse().initialize)。如果您可以假设您的设备始终可以访问互联网,那么实现应该像这样简单:

class CustomParseConnectivityProvider extends ParseConnectivityProvider{

Future<ParseConnectivityResult> checkConnectivity() => ParseConnectivityResult.wifi;

Stream<ParseConnectivityResult> get connectivityStream => Stream<ParseConnectivityResult>.empty();

}

(未在智能手机上测试和输入。)

于 2021-09-03T20:18:37.770 回答