본문 바로가기

Flutter

[Flutter] Firebase 데이터 넣기, 가져오기

 

class _EnrollScreenState extends State<EnrollScreen> {
  File? _image;
  final int maxLength = 28;
  Future _pickImage() async {
    final image = await ImagePicker().pickImage(source: ImageSource.gallery);
    if (image == null) return;
    final File imageFile = File(image.path);
    setState(() {
      _image = imageFile;
    });
  }

  final _user = FirebaseAuth.instance.currentUser?.uid;
  String _name = "";
  String _price = "";
  String _category = "";
  String _describe = "";

  final TextEditingController _nameController = TextEditingController();
  final TextEditingController _priceController = TextEditingController();
  final TextEditingController _categoryController = TextEditingController();
  final TextEditingController _describeController = TextEditingController();

TextEditingController를 생성 합니다.

 

void initState() {
    super.initState();
    _nameController.addListener(() {
      setState(() {
        _name = _nameController.text;

        // pw2컨트롤러 새로 만들기
      });
    });
    _priceController.addListener(() {
      setState(() {
        _price = _priceController.text;
      });
    });
    _categoryController.addListener(() {
      setState(() {
        _category = _categoryController.text;
      });
    });
    _describeController.addListener(() {
      setState(() {
        _describe = _describeController.text;
      });
    });
  }

이 컨트롤러들은 텍스트 필드 위젯과 연결되어 있으며, 텍스트 필드의 내용이 변경될 때마다 addListener를 통해 등록된 콜백 함수가 호출됩니다.

 

await firestore.collection('products').add({
      "curBidder": "0명",
      "productName": _name,
      'uid': _user,
      'price': int.parse(_price),
      'category': _category,
      'imageUrl': imageUrl,
      'expirationTime': endTime,
      'postTime': DateTime.now(),
      'describe': _describe
    });

그 후 해당 정보들을 Firebase에 저장 합니다.

 

curUid = FirebaseAuth.instance.currentUser?.uid ?? "";
    curUserName = FirebaseAuth.instance.currentUser?.displayName ?? "";
    curBidderName = widget.data["curBidder"];

저장된 데이터들을 가져오면 됩니다.

'Flutter' 카테고리의 다른 글

[Flutter] No file or variants found for asset  (0) 2023.08.20
Flutter로 Hello World 출력하기  (0) 2023.07.31
[Flutter] ios kakao Login  (0) 2023.05.08
[Flutter] firebase로 구글 로그인 하기  (0) 2023.05.04
CocoaPods 오류  (0) 2023.04.10