我在这样的颤振项目中使用斩波器。
AuthRestService 类:
import 'package:chopper/chopper.dart';
import 'package:flutter_meal_app/utils/constants.dart';
import 'package:injectable/injectable.dart';
part 'auth_rest_service.chopper.dart';
@prod
@singleton
@ChopperApi()
abstract class AuthRestService extends ChopperService {
@Post(path: '/accounts:signUp?key={authKey}')
Future<Response> signup(@Path('authKey') String authKey, @Body() Map<String, dynamic> body);
@Post(path: '/accounts:signInWithPassword?key={authKey}')
Future<Response> login(@Path('authKey') String authKey, @Body() Map<String, dynamic> body);
@factoryMethod
static AuthRestService create() {
final client = ChopperClient(
baseUrl: Constants.AUTH_BASE_URL,
converter: JsonConverter(),
services: [_$AuthRestService()],
interceptors: [HttpLoggingInterceptor()]);
return _$AuthRestService(client);
}
}
我使用注册电话的方式..
final response = await _authRestService.signup(AUTH_KEY,
{'email': email, 'password': password, 'returnSecureToken': true});
这是webcall的日志(成功和失败)..
--> POST https://identitytoolkit.googleapis.com/v1/accounts:signUp?key=yourauthkey
content-type: application/json; charset=utf-8
{"email":"palaksdarji@gmail.com","password":"123456","returnSecureToken":true}
--> END POST (78-byte body)
Success:
{
"idToken":"....",
........
}
Failure:
<-- 400 https://identitytoolkit.googleapis.com/v1/accounts:signUp?key=yourauthkey
cache-control: no-cache, no-store, max-age=0, must-revalidate
date: Sat, 17 Oct 2020 09:10:32 GMT
transfer-encoding: chunked
content-encoding: gzip
vary: Origin,X-Origin,Referer
content-type: application/json; charset=UTF-8
pragma: no-cache
x-xss-protection: 0
server: ESF
alt-svc: h3-Q050=":443"; ma=2592000,h3-29=":443"; ma=2592000,h3-27=":443"; ma=2592000,h3-T051=":443"; ma=2592000,h3-T050=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; ma=2592000,quic=":443"; ma=2592000; v="46,43"
x-frame-options: SAMEORIGIN
x-content-type-options: nosniff
expires: Mon, 01 Jan 1990 00:00:00 GMT
{
"error": {
"code": 400,
"message": "EMAIL_EXISTS",
"errors": [
{
"message": "EMAIL_EXISTS",
"domain": "global",
"reason": "invalid"
}
]
}
}
--> END POST
我在日志中得到的错误是:
error is Instance of 'Response<dynamic>'
我在我的项目中使用了相同类型的 RestService,它指向另一台服务器并且它可以工作,这个 AuthRestService 是用于 firebase 身份验证的 restservice 的精确副本。我在日志中遇到的错误来自我们调用“注册”API 的那一行,这让我对我的 ChopperClient 感到好奇。
大家知道怎么回事吗??请帮忙。谢谢。