• 카테고리

    질문 & 답변
  • 세부 분야

    모바일 앱 개발

  • 해결 여부

    미해결

로그인 기능이 제대로 작동하지않습니다.

20.06.22 23:11 작성 조회수 148

0

현재 주어진대로 코드를 짜넣어 진행하였으나 구글계정으로 로그인까지만 되며 그이후 탭페이지로 넘어가지않고 그대로 로그인페이지에 머물러있습니다 에디터에서 따로 오류문구는 떠오르지 않고있습니다ㅠㅠ

import 'package:flutter/material.dart';
import 'package:flutter_signin_button/flutter_signin_button.dart';
import 'package:google_sign_in/google_sign_in.dart';
import 'package:firebase_auth/firebase_auth.dart';
import 'package:instagramclon/tab_page.dart';

class LoginPage extends StatelessWidget {
final GoogleSignIn _googleSignIn = GoogleSignIn();
final FirebaseAuth _auth = FirebaseAuth.instance;

@override
Widget build(BuildContext context) {
return Scaffold(
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Text('Instagram Clon',
style: TextStyle(fontSize: 40.0, fontWeight: FontWeight.bold)),
Padding(
padding: EdgeInsets.all(50.0),
),
SignInButton(
Buttons.Google,
onPressed: () {
_handleSingIn().then((user) {
Navigator.pushReplacement(context,
MaterialPageRoute(builder: (context) => TabPage(user)));
});
},
),
],
),
),
);
}

Future<FirebaseUser> _handleSingIn() async {
GoogleSignInAccount googleUser = await _googleSignIn.signIn();
GoogleSignInAuthentication googleAuth = await googleUser.authentication;
FirebaseUser user = await _auth.signInWithCredential(
GoogleAuthProvider.getCredential(
idToken: googleAuth.idToken, accessToken: googleAuth.accessToken));
print("signed in " + user.displayName);
return user;
}
}

답변 3

·

답변을 작성해보세요.

0

라이브러리 버전도 맞춰보시겠어요?
https://github.com/junsuk5/flutter_insta_clon/blob/master/pubspec.yaml
에러를 보니 0.8.4+5 버전을 사용하시는 것 같습니다.
라이브러리가 버전업 되면서 사용방법이 중간에 바뀌었습니다.
완성코드에서는 0.14.0+5 이고, 최신 버전은 0.16.1 입니다.
https://pub.dev/packages/firebase_auth#-installing-tab-
최신 버전에서도 동일한 코드로 작동할 것으로 보입니다.

0

bigpel66님의 프로필

bigpel66

질문자

2020.06.22

답변 감사합니다 보내주신 깃헙에 있는 코드대로 진행해 보았으나 onPressed부분을 보내주신부분과 일치시켜도 동일한 증상이 나타나네요 ㅠㅠ

또한 깃헙에 나와있는 코드대로 작성하니 오류가 발생하네요 

 Future<FirebaseUser> _handleSignIn() async {
GoogleSignInAccount googleUser = await _googleSignIn.signIn();
GoogleSignInAuthentication googleAuth = await googleUser.authentication;
FirebaseUser user = (await _auth.signInWithCredential(
GoogleAuthProvider.getCredential(
idToken: googleAuth.idToken, accessToken: googleAuth.accessToken))).user;
print("signed in " + user.displayName);
return user;
}
}

해당부분에대해

Compiler message:

lib/login_page.dart:53:81: Error: The getter 'user' isn't defined for the class 'FirebaseUser'.

 - 'FirebaseUser' is from 'package:firebase_auth/firebase_auth.dart' ('/D:/Flutter/flutter/.pub-cache/hosted/pub.dartlang.org/firebase_auth-0.8.4+5/lib/firebase_auth.dart').

Try correcting the name to the name of an existing getter, or defining a getter or field named 'user'.

            idToken: googleAuth.idToken, accessToken: googleAuth.accessToken))).user;

                                                                                ^^^^

이러한 오류문구가 나타납니다!

0

onPressed() 부분에서 Navigator.push 등을 하면 안 됩니다.
링크를 참고하여 onPressed 부분을 수정해 주세요.

https://github.com/junsuk5/flutter_insta_clon/blob/master/lib/login_page.dart