본문 바로가기

Flutter

firebase - firestore

파이어베이스의 꽃인 파이어스토어에 대해 알아보자

 

document 추가하기

add() - document id가 랜덤한 키를생성

set() - document id의 고유한 이름을 지정할 수 있다.

 

 

cloud_firestore를 pub.dev에서 설치하자

 

 

Divider(),
ElevatedButton(onPressed: () async{
  await FirebaseFirestore.instance.collection("counter").add({
    "value" : 10,
    "timestamp" : Timestamp.now(),
  });
}, child: Text("데이터 쓰기"),),

 

 

만약 에러가 나면 아래처럼 minSdkVersion을 수정해라

재시작하고 버튼을 누르면

 

아래처럼 잘 뜬다

add를 사용해서 랜덤 값이 들어간다.

 

 

onPressed: () async {
  /*await FirebaseFirestore.instance.collection("counter").add({
  "value" : 10,
  "timestamp" : Timestamp.now(),
});*/
  await FirebaseFirestore.instance
      .collection("test")
      .doc("flutter")
      .set({
    "value" : 20,
  });
},

set을 사용하면 아래처럼 지정한 값이 온다.

 

 

이때 update도 가능하다.

단 update를 하기 위해서는 id를 넣어야 한다.

onPressed: () async {
  await FirebaseFirestore.instance.collection("counter").doc(
    "7NsulMdt6X0WY8rqRiVK"
  ).update({
    "value" : 11,
    "timestamp" : Timestamp.now(),
  });
  /*await FirebaseFirestore.instance
      .collection("test")
      .doc("flutter")
      .set({
    "value" : 20,
  });*/
},

이렇게 update를 할 수 있다.

 

 

delete도 가능하다.

await FirebaseFirestore.instance.collection("counter").doc(
    "7NsulMdt6X0WY8rqRiVK"
).delete();

 

get을 통해 읽어 올 수 도 있다

Divider(),
ElevatedButton(
  onPressed: () async {
    final snapshot = await FirebaseFirestore.instance.collection(
        "test").get();
    for (var element in snapshot.docs) {
      print(element.data());
    }
  },
  child: Text("데이터 읽기"),
),

 

이러면 test에 있는 데이터를 가져올 수 있다.

 

 

'Flutter' 카테고리의 다른 글

firebase - 배달앱(1) 프로젝트 설정  (0) 2024.07.06
firebase - realtime database  (0) 2024.07.06
firebase - storage  (0) 2024.07.04
firebase- 인증  (0) 2024.07.02
firebase -cli 실습  (0) 2024.07.02