'Firebase'에 해당되는 글 2건

  1. [flutter] firebase Google Login 하기 2018.04.04
  2. FireBase authentication Setting for android 2018.04.04

Google Login을 하기위헤서는 일단.   firebase 셋팅이 필요합니다.


셋팅이 안되신분은 참고  =>   http://jdj610.tistory.com/162



1. flutter프로젝트에 package를 등록합니다.  pubspec.yaml 


dependencies:
flutter:
sdk: flutter

# The following adds the Cupertino Icons font to your application.
# Use with the CupertinoIcons class for iOS style icons.
cupertino_icons: ^0.1.0
google_sign_in: "^3.0.0"
firebase_auth: "^0.5.3"


2.   main.dart에 넣어주세요


import 'dart:async';
import 'package:flutter/material.dart';

import 'package:firebase_auth/firebase_auth.dart';
import 'package:google_sign_in/google_sign_in.dart';

final FirebaseAuth _auth = FirebaseAuth.instance;
final GoogleSignIn googleSignIn= new GoogleSignIn();

GoogleSignIn _googleSignIn = new GoogleSignIn(
scopes: <String>[
'email',
'https://www.googleapis.com/auth/contacts.readonly',
],
);

void main() {
runApp(
new MaterialApp(
title: 'Google Sign In',
home: new SignInDemo(),
),
);
}

class SignInDemo extends StatefulWidget {
@override
_SignInDemoState createState() => new _SignInDemoState();
}

class _SignInDemoState extends State<SignInDemo> {

String _user_text = null;

Future<String> _testSignInAnonymously() async {
final FirebaseUser user = await _auth.signInAnonymously();
assert(user != null);
assert(user.isAnonymous);
assert(!user.isEmailVerified);
assert(await user.getIdToken() != null);

assert(user.providerData.length == 1);
assert(user.providerData[0].providerId == 'firebase');
assert(user.providerData[0].uid != null);
assert(user.providerData[0].displayName == null);
assert(user.providerData[0].photoUrl == null);
assert(user.providerData[0].email == null);
final FirebaseUser currentUser = await _auth.currentUser();
assert(user.uid == currentUser.uid);
print(currentUser.uid);
setState(() { _user_text=currentUser.uid; });


return 'signInAnonymously succeeded: $user';
}

Future<String> _testSignInWithGoogle() async {
final GoogleSignInAccount googleUser = await _googleSignIn.signIn();
final GoogleSignInAuthentication googleAuth =
await googleUser.authentication;
final FirebaseUser user = await _auth.signInWithGoogle(
accessToken: googleAuth.accessToken,
idToken: googleAuth.idToken,
);
assert(user.email != null);
assert(user.displayName != null);
assert(!user.isAnonymous);
assert(await user.getIdToken() != null);

final FirebaseUser currentUser = await _auth.currentUser();
assert(user.uid == currentUser.uid);
print(currentUser.uid);
setState(() { _user_text=currentUser.uid; });
return 'signInWithGoogle succeeded: $user';
}

Future<Null> _handleSignOut() async {
await FirebaseAuth.channel.invokeMethod("signOut");
final FirebaseUser currentUser = await _auth.currentUser();
setState(() { _user_text=currentUser.uid; });
}

Future<Null> get_uid() async{
final FirebaseUser currentUser = await _auth.currentUser();
print(currentUser);
setState(() { _user_text=currentUser.uid; });
}

@override
Widget build(BuildContext context) {
return new Scaffold(
body: new Container(
child: new Center(
child: new Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
new Row(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
new RaisedButton(
child: new Text("Sign Google "),
color: Colors.redAccent,
onPressed: _testSignInWithGoogle,
),
new RaisedButton(
child: new Text("Sign Anonymously"),
color: Colors.blueAccent,
onPressed:_testSignInAnonymously,
),
new RaisedButton(
child: new Text("SignOut"),
color: Colors.orangeAccent,
onPressed: _handleSignOut,
)
],
),
_user_text == null ? new Text("Null"):new Text(_user_text),
],
)

),
),
);
}
}



그리고 실행하면 됩니다.



,





1. https://firebase.google.com에서 프로젝트를 생성





2.생성이 완료되면 Android app에 firebase를 추가함 클릭




3.자신의 패키지 이름을 찾아서 입력 합니다. 

저는 com.example.todo입니다.



디버그 서명 인증서 SHA-1를 등록합니다.


등록 방법은  커맨드창에  아래와 같이 입력후

 

keytool -exportcert -list -v -alias androiddebugkey -keystore "C:\Users\USERID\.android\debug.keystore"



debug.keystore가 있는 경로를 찾아서 등록하시면 됩니다. 


password는 기본적 셋팅값은 android 입니다.   


그럼 인증서가 출력되는데 인증서중 sha-1의 데이터를 복사해서 넣어주시면 됩니다.




4. google-services.json파일을 다운로드 후 자신의 프로젝트 android/app경로에 넣어줍니다.










5. Gradle 설정아래의 설명과 같이 자신의 프로젝트에 등록해 줍니다.


android/ gradle

buildscript {
   
// ...
    dependencies
{
       
// ...
        classpath
'com.google.gms:google-services:3.1.1' // google-services plugin
   
}
}

allprojects
{
   
// ...
    repositories
{
       
// ...
        maven
{
            url
"https://maven.google.com" // Google's Maven repository
       
}
   
}
}

android/app/build.gradle

apply plugin: 'com.android.application'

android
{
 
// ...
}

dependencies
{
 
// ...
  compile
'com.google.firebase:firebase-core:11.8.0'

 
// Getting a "Could not find" error? Make sure you have
 
// added the Google maven respository to your root build.gradle
}

// ADD THIS AT THE BOTTOM
apply plugin
: 'com.google.gms.google-services'



6. Google login을 사용 설정 해줍니다.


,