Firebase App 연결설정 (Android, iOS, Web)

Updated:

firebase core 패키지 설치

# in pubspec.yaml
dependencies:
  flutter:
    sdk: flutter
  firebase_core: ^1.7.0

안드로이드 접속 설정

1.firebase 에 접속하여 프로젝트를 생성하고, 파이어베이스 콘솔에서 안드로이드 앱 추가

  • 안드로이드 앱의 패키지 명을 알아야 하는데 프로젝트 폴더 내 android/app 아래 build.gradele 파일 안에 applicationID "com.example ...." 의 ID 명복사 해놓고 앱등록 에서 Android 패키지 이름에 붙여 넣습니다.

  • 앱 등록 하게 되면 google-services.json 파일을 다운로드 해서 android/app 폴더아래에 파일을 붙여 넣습니다. (google-services.json 파일은 개인 정보의 파이어 베이스 관련 정보가 담겨 있기 때문에 github 나, 공유 폴더 등 공유가 되지 않도록 유의 해야 합니다.)

    2.Firebase SDK 추가에서 dependencies { classpath 'com.google.gms.google-services:...' } 의 부분을 복사해서 프로젝트 내 android/build.gradle 의 안드로이드 환경 구성 파일 안에 해당내용을 붙여 넣기 합니다 (주의!! flutter android 안에는 build.gradle 파일이 2개 있기 때문에 코드 입력 시 다른곳에에 입력 되지 않게 주의 해야 함 )

    3.계속해서 apply plugin: 'com.google.gms.google-services' 의 부분을 build.gradle 경로에 붙여 넣기 합니다.

    4.main.dart 파일안에 runApp() 실행전에 Firebase 를 초기화해서 Firestore 를 사용할 수 있도록 초기화 코드를 넣스니다.

// in main.dart
import 'package:firebase_core/firebase_core.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp(); // Firebase 초기화
  runApp(const MyApp());
}

iOS 접속 설정

(iOS installation in flutter firebase)[https://firebase.flutter.dev/docs/installation/ios/]

1.firebase 에 접속하여 프로젝트를 생성하고, 파이어베이스 콘솔에서 iOS 앱 추가

  • iOS 패키지 명을 알아야 하는데 프로젝트 내 ios/Runner.xcworkspace 파일을 xcode 로 열고 Runner 의 general tab 에 Bundle Identifier 의 com.example.... ID 명을 복사해서 앱 등록의 iOS 번들 ID 에 붙여 넣습니다. 하고 앱등록

  • GoogleService-info.plist 파일을 다운로드 받아서 프로젝트 ios 안에 복사해 넣습니다

    2.firebase configuration file 설치

  • 반드시 xcode 를 사용하여 프로젝트와 연결해야합니다. ( GoogleService-info.plist 파일을 연결 시켜줘야 합니다)

  • ios/Runner.xcworkspace 파일을 xcode 로 열고, 오른쪽 버튼 클릭해서 Add files to "Runner" 선택한다음에 GoogleService-Info.plist 선택하고 반드시 Copy items if needed 를 체크 박스 를 선택해야 함

스크린샷 2021-10-21 오전 10 26 36

3.GoogleService-info.plist 파일의 ‘REVERSED_CLIENT_ID의 값을 복사한다. (xcode 상에서 )

  • 최상위 Runner의 Target ‘Runner’에서 최하단의 Url type을 새로 추가한다.

  • 금방 복사한 내용을 ‘Url Schemes’에 입력한다.

image

4.프로젝트에 ios 에 pod 파일이 없을 경우 pod init 해주고, 있거나생성하면 Podfile 에 들어가서 다음 코드를 복사 해줍니다

# add pods for desired Firebase products
# https://firebase.google.com/docs/ios/setup#available-pods
  • 그리고 나서 pod install 해주면 firebase core 가 자동으로 설치됩니다 그리고 프로젝트 실행해줘서 firebase 가 초기화되어 앱 실행이 잘되는지 확인해 줍니다

Web 접속 설정

(Firebase Web in flutter)[https://firebase.flutter.dev/docs/installation/web/]

  • Add firebase SKDs 는 web/index.html 에서 CDN import 해서 만이 동작 됩니다,
<html>
  ...
  <body>
    <!-- Add this line -->
    <script src="https://www.gstatic.com/firebasejs/8.6.1/firebase-app.js"></script>

    <!-- ------ -->
    <script src="main.dart.js" type="application/javascript"></script>
  </body>
</html>
  • Firebase 를 초기화 하기 (firebase 에서 web app 을 생성하고 CDN 의 다음과 같이 firebaseConfig 부분을 같이 사용 한것임)
<!-- Firebase Configuration -->
<script>
  var firebaseConfig = {
    apiKey: "...",
    authDomain: "[YOUR_PROJECT].firebaseapp.com",
    databaseURL: "https://[YOUR_PROJECT].firebaseio.com",
    projectId: "[YOUR_PROJECT]",
    storageBucket: "[YOUR_PROJECT].appspot.com",
    messagingSenderId: "...",
    appId: "1:...:web:...",
    measurementId: "G-...",
  };

  // Initialize Firebase
  firebase.initializeApp(firebaseConfig);
</script>

🔶 🔷 📌 🔑

Reference

Flutter cookbook - https://flutter.dev/docs/cookbook

오준석의 생존코딩 - https://book.jacobko.info/#/book/1162244372

플러터로 세계정복 - https://muhly.tistory.com/24

Categories:

Updated:

Leave a comment