본문 바로가기

study/flutter_firebase

플러터(flutter) firestore 데이터 Create

메인함수에 바인딩, 파이어베이스 initializeApp() 추가

//  Create
//

import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:flutter/material.dart';

class MakePostPage extends StatefulWidget {
  const MakePostPage({Key? key}) : super(key: key);

  @override
  _MakePostPageState createState() => _MakePostPageState();
}

class _MakePostPageState extends State<MakePostPage> {
  // 파이어베이스 스토어 인스턴스 생성
  FirebaseFirestore firestore = FirebaseFirestore.instance;

  //텍스트 필드 컨트롤러 생성
  TextEditingController _titleController = TextEditingController();
  TextEditingController _contentController = TextEditingController();

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('포스트 업로드 테스트'),
      ),
      body: Container(
        child: Column(
          children: [
            TextField(
              controller: _titleController,
              decoration: InputDecoration(
                  border: OutlineInputBorder(), labelText: '포스팅 제목'),
            ),
            TextField(
              controller: _contentController,
              decoration: InputDecoration(
                  border: OutlineInputBorder(), labelText: '내용'),
            ),
            SizedBox(
              height: 50,
            ),
            ElevatedButton(
                onPressed: () {
                  firestore.collection('Posts').doc('test1').set({
                    // 컨트롤러를 통해 텍스트필드에 있는 값 데이터베이스에 저장
                    "postTitle": _titleController.text,
                    "content": _contentController.text,
                  });
                },
                child: Text('업로드 하기'))
          ],
        ),
      ),
    );
  }
}