Flutter

파이어베이스(2)_연동

hamiric 2024. 10. 15. 18:14

파이어베이스 - 애플리케이션 연동하기

  파이어베이스의 프로젝트 개요 화면에서 하단의 이미지를 통해 연동할 수 있다.

  ios, android, web, unity, flutter(CLI방식)를 연동할 수 있다.

 

## Flutter 어플리케이션과 파이어베이스를 연동할때 ios / andriod 연동방식을 이용하는것과 CLI 방식을 이용하는것의 차이? 

 

Android 방식으로 연동하기

  1. Andriod 패키지 이름 입력하기

  >> android - app - build.gradle - namespace 확인

 

@@ 연동시 선택사항

  - 앱 닉네임은 Firebase Console 에서 해당 앱의 명칭을 정의하는 부분

  - 디버그 서명 인증서는 로그인이 필요한 경우 반드시 설정해야 하는 부분 ( 구글 로그인 등등 )

 

  2. 구성 파일 다운로드 및 Json 파일 추가

다운로드 화면

 

android - app 에 넣기

 

  3. Firebase SDK 추가

  각각 임의의 파일에 추가

  2 - 1 

settings.gradle

 

plugins 에 추가

 

  2 - 2

 

build.gradle
plugins 에 추가

 

  2 - 3

build.gradle
dependencies 에 추가 ( 없으면 만들기 )

 

파이어베이스와 연동된 프로젝트 실행

  1. pubspec.yaml 파일에 접근 라이브러리 설치

 

// Terminal
flutter clean     // 지금까지 설치된 라이브러리 클리너

flutter pub get   // pubspec.yaml에 적힌 라이브러리들 설치

 

  2. 파이어 베이스를 사용하기 위한 함수를 main.dart 에 추가

void main() {
  WidgetsFlutterBinding.ensureInitialized();  // 파이어베이스 바인딩 함수
  runApp(const MyApp());
}

 

  WidgetsFlutterBinding.ensureInitialized() 함수는 WidgetsBinding 인스턴스를 초기화 하고, Flutter 프레임워크가 완전히 초기화 되었음을 보장해주는 함수다. 파이어베이스가 원활히 작동하려면 Flutter 프레임워크가 완전히 초기화되고 나서 사용해야 하기 때문에 WidgetsFlutterBinding.ensureInitialized() 함수가 사용되고 나서 파이어 베이스를 작동 시켜야 한다.

 

  3. 파이어베이스 초기화를 위한 함수를 main.dart 에 추가

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  
  // 파이어베이스 접근을 위한 함수
  await Firebase.initializeApp(
    options: FirebaseOptions(
      apiKey: apiKey,
      appId: appId,
      messagingSenderId: messagingSenderId,
      projectId: projectId,
    ),
  );
  
  runApp(const MyApp());
}

 

  여기서 apiKey, appId, messagingSenderId, projectId 는 위에서 받아온 google-services.json 파일 내에서 확인할 수 있으므로 값을 넣어주면 된다.

  apiKey 는 apiKey의 "current_key" 값을, appId 는 "cliend_info"의 "mobilesdk_app_id" 값을, messagingSenderId 는 "project_info"의 "project_number" 값을, projectId 는 "project_info"의 "project_id" 값을 넣어주면 된다.

 

  4. 테스트 하기

// main.dart에 빌드 함수 내부
FirebaseFirestore.instance.collection('feeds').get().then((value) {
  print(value.docs.length);
});

// 파이어베이스 데이터베이스에 컬렉션을 먼저 집어넣어 주어야 한다!!
// 1 이 출력될 경우 연동이 잘 됬다고 판단할 수 있다.

파이어베이스 데이터베이스 컬렉션 추가된 모습

 

 

## 패키지명 수정방법

  라이브앱을 목적으로 만들 프로젝트의 경우, 패키지 명에 example 이라는 단어가 들어가면 안된다. 만약 들어가 있을 경우, 수동으로 패키지 명을 바꿔줄 필요가 있다.

 

  1.  build.gradle 수정

build.gradle

해당 부분 example -> 다른단어로 교체

android {
  namespace = "com.hamiric.flutter_5th_sample"
}

defaultConfig {
  applicationId = "com.hamiric.flutter_5th_sample"
}

 

  2. 파일명 바꾸기

android - app - src - main 안에 있는 세부 파일명 바꾸기

 

  3. MainActivity.kt 안의 패키지명 변경

// example -> 다른단어로 교체
package com.hamiric.flutter_5th_sample

 

  4. 어플 실행 확인!

'Flutter' 카테고리의 다른 글

API  (0) 2024.10.16
파이어베이스(3)_CRUD개발  (0) 2024.10.16
파이어베이스(1)_백엔드 서비스  (0) 2024.10.14
상태관리_ 라이브러리  (0) 2024.10.12
상태관리 (2) _GetX  (0) 2024.10.11