如果没有提供 ParseConnectivityProvider,LiveQuery 不起作用
LiveQuery does not work, if there is no ParseConnectivityProvider provided
为此绞尽脑汁
我无法解决这个问题,我的代码产生了这个错误:
LiveQuery does not work, if there is no ParseConnectivityProvider provided.
我尝试使用 liveQueryURL,但没有成功。 flutter 文档没有关于如何从服务器实现此 url 的具体示例。我从 javaScript 视频和文档中假设这是我创建的自定义子域,例如 customdomain.b4a.io,这使得最终的 url 'wss://customdomain.b4a.io'.
我查看了 Parse().initialize 的“connectivityProvider:”arg,但没有发现具体的实现方法。
这只是一个 dart 演示项目。非常感谢任何帮助或想法!
编辑:This post 根本没有解决我的问题。也很老了
有没有可能因为这是一个 dart 程序而不是 flutter 而无法正常工作?没想到是这样...
代码:
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'));
});
}
不幸的是,在 flutter 中解析实时查询不适用于 https 服务器 url。我以前遇到过这个问题,这让我发疯了!我所做的是在解析服务器的后端,同时提供 http 和 https 服务器。而在 flutter 的客户端,只需连接到 http 服务器进行实时查询!
这很好
来自https://github.com/parse-community/Parse-SDK-Flutter/issues/543#issuecomment-912783019
请提供自定义 ParseConnectivityProvider
(connectivityProvider
in Parse().initialize
)。
如果您可以假设您的设备始终可以访问互联网,那么实施应该像这样简单:
class CustomParseConnectivityProvider extends ParseConnectivityProvider{
Future<ParseConnectivityResult> checkConnectivity() => ParseConnectivityResult.wifi;
Stream<ParseConnectivityResult> get connectivityStream => Stream<ParseConnectivityResult>.empty();
}
(未在智能手机上测试和输入。)
为此绞尽脑汁
我无法解决这个问题,我的代码产生了这个错误:
LiveQuery does not work, if there is no ParseConnectivityProvider provided.
我尝试使用 liveQueryURL,但没有成功。 flutter 文档没有关于如何从服务器实现此 url 的具体示例。我从 javaScript 视频和文档中假设这是我创建的自定义子域,例如 customdomain.b4a.io,这使得最终的 url 'wss://customdomain.b4a.io'.
我查看了 Parse().initialize 的“connectivityProvider:”arg,但没有发现具体的实现方法。
这只是一个 dart 演示项目。非常感谢任何帮助或想法!
编辑:This post 根本没有解决我的问题。也很老了
有没有可能因为这是一个 dart 程序而不是 flutter 而无法正常工作?没想到是这样...
代码:
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'));
});
}
不幸的是,在 flutter 中解析实时查询不适用于 https 服务器 url。我以前遇到过这个问题,这让我发疯了!我所做的是在解析服务器的后端,同时提供 http 和 https 服务器。而在 flutter 的客户端,只需连接到 http 服务器进行实时查询! 这很好
来自https://github.com/parse-community/Parse-SDK-Flutter/issues/543#issuecomment-912783019
请提供自定义 ParseConnectivityProvider
(connectivityProvider
in Parse().initialize
)。
如果您可以假设您的设备始终可以访问互联网,那么实施应该像这样简单:
class CustomParseConnectivityProvider extends ParseConnectivityProvider{
Future<ParseConnectivityResult> checkConnectivity() => ParseConnectivityResult.wifi;
Stream<ParseConnectivityResult> get connectivityStream => Stream<ParseConnectivityResult>.empty();
}
(未在智能手机上测试和输入。)