카테고리 없음

[flutter 2.0] firestore 연동 및 기본적인 CRUD

Ryuha류하 2021. 6. 30. 11:36

별도의 창에서 데이터 값을 입력하는 것이 아닌 hardcoding된 dart파일에서 넘어가는 것이다.

 

데이터 베이스의 예시는 다음과 같다. 

 

main 함수에는 async와 함께 다음 코드를 넣고 MyApp을 구동시켜야 한다.

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp();
  runApp(MyApp());
}

children Widget에 다음과 같이 구동하였다.

 

1. Create

FlatButton(
              color: Color(0xff67666b),
              child: Text("member 추가", style: TextStyle(color: Colors.white)),
              onPressed: () {
                String n_member = "Heo";
                firestore
                    .collection('member')
                    .doc(n_member)
                    .set({'age': 21, 'attendance?': false, 'part': 'Design'});
              },
            ),

 

2. Read - terminal 창에 띄운다

 FlatButton(
              color: Color(0xffaf0022),
              child:
                  Text("member 한명 가져오기", style: TextStyle(color: Colors.white)),
              onPressed: () {
                String title = "";
                firestore
                    .collection("member")
                    .doc("Ryu")
                    .get()
                    .then((DocumentSnapshot ds) {
                  title = ds["part"];
                  print(title);
                  print(ds["age"]);
                });
              },
            ),

 

3. Update

FlatButton(
              color: Color(0xffd1cfd2),
              child: Text("member update",
                  style: TextStyle(color: Colors.black87)),
              onPressed: () {
                firestore
                    .collection("member")
                    .doc("Ryu")
                    .update({"part": "Desgramming"});
              },
            ),

 

4. Delete

FlatButton(
              color: Color(0xff212345),
              child: Text("member 삭제", style: TextStyle(color: Colors.white)),
              onPressed: () {
                //특정 member 삭제
                firestore.collection("member").doc("Heo").delete();
                //특정 member에서 하나의 field만 삭제
                firestore
                    .collection('member')
                    .doc('Ryu')
                    .update({'part': FieldValue.delete()});
              },
            ),