下面的是用过的代码:
import 'package:flutter/material.dart';
import 'package:google_sign_in/google_sign_in.dart';
import 'package:parse_server_sdk_flutter/parse_server_sdk.dart';
class LoginScreen extends StatefulWidget {
@override
_LoginScreenState createState() => _LoginScreenState();
}
class _LoginScreenState extends State<LoginScreen> {
Future<void> _signUpGoogle() async {
// loading = true;
final GoogleSignIn _googleSignIn = GoogleSignIn(
scopes: ['email', 'https://www.googleapis.com/auth/contacts.readonly']);
sigInGoogle() async {
GoogleSignInAccount account = await _googleSignIn.signIn();
GoogleSignInAuthentication authentication = await account.authentication;
final ParseResponse response = await ParseUser.loginWith(
'google',
google(_googleSignIn.currentUser.id,
authentication.accessToken.toString(), authentication.idToken));
// print('response.error' + response.error.toString());
// print('response.results' + response.results.toString());
// print('response.results' + response.statusCode.toString());
print(response.toString());
if (response.success) {
print('parse google signin successs');
print(response.success);
} else {
print('parse google SignIn Failed');
print('response.error: ' + response.error.toString());
// print(google(_googleSignIn.currentUser.id,
// authentication.accessToken.toString(), authentication.idToken));
}
}
sigInGoogle();
}
@override
Widget build(BuildContext context) {
return Center(
child: IconButton(
icon: Icon(Icons.login),
onPressed: _signUpGoogle,
),
);
}
}下面的是日志:
I/颤振(23392):“ParseResponse”的实例
I/颤振(23392):解析google SignIn失败
I/颤振(23392):response.error:
I/颤振(23392):
I/颤振(23392):ParseException (类型: ObjectNotFound):
I/颤振(23392):代码:101个
I/颤振(23392):消息: Google auth对此用户无效。
请帮助解决这个问题.
发布于 2022-03-29 16:06:03
看起来你的参数在传递到'google‘数据类型时是错误的。参数如下;
Map<String, dynamic> google(String token, String id, String idToken)使用你的代码但按这个顺序传递,
google(authentication.accessToken.toString(), _googleSignIn.currentUser!.id, authentication.idToken!));对我来说这是个诀窍
https://stackoverflow.com/questions/66172564
复制相似问题