CloudFirestore의 array를 사용해보기

CloudFirestore의 array를 사용하고 있는 기사가 별로 발견되지 않았으므로, 비망록적으로 남겨 둔다.

기재할 것
CloudFirestore 필드의 배열 유형 사용 (이번에는 추가)

기재하지 않는 것
Firebase 프로젝트를 만드는 방법

아래 사진과 같이 favorite_dog 라는 배열을 만들고 그 안에 좋아하는 개 이름을 넣어가는 코드를 만든다.



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


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

class MyApp extends StatelessWidget {
  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Firebaseテスト',
      theme: ThemeData(
        primarySwatch: Colors.blue,
        visualDensity: VisualDensity.adaptivePlatformDensity,
      ),
      home: MyFirestorePage(),
    );
  }
}

class MyFirestorePage extends StatefulWidget {
  @override
  _MyFirestorePageState createState() => _MyFirestorePageState();
}

class _MyFirestorePageState extends State<MyFirestorePage> {
//配列に追加する関数を作る。
  appendArray() {
    DocumentReference ref = FirebaseFirestore.instance
        .collection('male')
        .doc('h1V6VPae89iMno78IiSP');
    ref.update(
      {
        "favorite_dog": FieldValue.arrayUnion(['犬の名前']),
      },
    );
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            ElevatedButton(
              child: Text('登録'),
              onPressed: () {
                appendArray();
              },
            ),
          ],
        ),
      ),
      // This trailing comma makes auto-formatting nicer for build methods.
    );
  }
}
ref.update(
      {
        "favorite_dog": FieldValue.arrayUnion(['犬の名前']),
      },
    )

update는 map 형식으로 씁니다.

시험에 개 이름을 "hachi"로 하고 flutter run 하고 등록 버튼을 누르면,


무사히 배열의 [1]에 hachi가 저장되었습니다.
덧붙여 배열에 벌써 있는 요소에 대해서는 중복해 추가는 되지 않습니다.

※참고
htps : // 푹 빠져라. 오, ぇ. 코 m / 드 cs / 푹신 s 잡아 / 마나게 - 다 / 아 d - 다 # # ゔ ぁ_ 10

좋은 웹페이지 즐겨찾기