firebase는 구글이 인수한 모바일 앱 개발에 최적화된 기능을 제공하는 서비스이다.
플러터 뿐만이 아니라 다른 앱 개발 프레임 워크 그리고 웹이나 서버에서도 이용할 수 있다.
https://firebase.google.com/?hl=ko
curl -sL https://firebase.tools | bash
firebase login
dart pub global activate flutterfire_cli
flutterfire configure
다음에서 플랫폼을 고른다.(web, android, ios, macos중에...)
설정이 끝나면
firebase_option.dart파일과
android파일에 google-sevices.json이 생성되면 성공이다.
WidgetsFlutterBinding.ensureInitialized();
await Firebase.initializeApp(
options: DefaultFirebaseOptions.currentPlatform,
);
이렇게 초기화를 설정해줘야 한다.
코틀린 버전이 자꾸 안맞는다고 뜨면
프로젝트에 있는 settings.gradle에 들어가서 pligins에 코틀린을 핫로드에 뜨는 최신버전으로 바꿔준다.
id "org.jetbrains.kotlin.android" version "1.9.0" apply false ```
add()
add()함수를 이용해서 문서를 삽입하면 파이어 스토어에서 자동으로 문서의 ID값을 생성해줌.
final data = {
'name' : '파이어베이스',
'age' : '10'
'Fruit' : ['사과', '바나나', '파인애플']
};
FirebaseFirestore.instance
.collection('person')
.add(data);
.collection()함수는 문서를 저장할 컬렉션을 저장함
set()
직접 문서의 ID값을 지정할 수 있다.
final data = {
'name' : '파이어베이스',
'age' : '10'
'Fruit' : ['사과', '바나나', '파인애플']
};
FirebaseFirestore.instance
.collection('person')
.doc('1') //문서의 ID값을 넣어줄 수 있다.
.set(data);
delete()
FirebaseFirestore.instance
.collection('person')
.doc('1') //삭제할 문서의 ID값을 입력해준다.
.delete();
Stream 실시간으로 컬렉션 업데이트 받기
FirebaseFirestore.instance
.collection('person')
.snapshots();
Future로 일회성으로 데이터 받아오기
한번만 받아오고 지속적으로 업데이트 하지는 않는다.
FirebaseFirestore.instance
.collection('person')
.get();
FirebaseFirestore.instance
.collection('person')
.doc('1')
.snapshots(); //get으로 받아올수도 있음
update()
FirebaseFirestore.instance
.collection('person')
.doc('1')
.update({
'name' : '지수'
});