Commit 18214a76 authored by Gavin An's avatar Gavin An

파이어스토어 테스트

parent 3ffbc5c4
...@@ -11,14 +11,25 @@ class FireStoreTestPage extends StatefulWidget { ...@@ -11,14 +11,25 @@ class FireStoreTestPage extends StatefulWidget {
class _FireStoreTestPageState extends State<FireStoreTestPage> { class _FireStoreTestPageState extends State<FireStoreTestPage> {
final FirebaseFirestore store = FirebaseFirestore.instance; final FirebaseFirestore store = FirebaseFirestore.instance;
late Stream<QuerySnapshot<Map<String, dynamic>>> querySnapShot; late Stream<QuerySnapshot<Map<String, dynamic>>> querySnapShot;
late ScrollController sc;
List<QueryDocumentSnapshot<Map<String, dynamic>>> documents = [];
@override @override
void initState() { void initState() {
super.initState(); super.initState();
querySnapShot = sc = ScrollController();
store.collection('baecha') querySnapShot = store
// .where('baljuGroupId', whereIn: ['baecha_group_001', 'baecha_group_002']) .collection('baecha')
.snapshots(); // .where('baljuGroupId', whereIn: ['baecha_group_001', 'baecha_group_002'])
.orderBy('createDate', descending: true)
.snapshots();
querySnapShot.listen(
(event) {
if (documents.isNotEmpty) {
sc.animateTo(0, duration: const Duration(milliseconds: 300), curve: Curves.ease);
}
},
);
} }
@override @override
...@@ -29,11 +40,10 @@ class _FireStoreTestPageState extends State<FireStoreTestPage> { ...@@ -29,11 +40,10 @@ class _FireStoreTestPageState extends State<FireStoreTestPage> {
if (!snapshot.hasData) { if (!snapshot.hasData) {
return const CircularProgressIndicator(); return const CircularProgressIndicator();
} }
List<QueryDocumentSnapshot<Map<String, dynamic>>> documents = snapshot.data!.docs; documents = snapshot.data!.docs;
return Expanded( return Expanded(
child: ListView.builder( child: ListView.builder(
shrinkWrap: true, controller: sc,
reverse: true,
itemCount: documents.length, itemCount: documents.length,
itemBuilder: (context, index) { itemBuilder: (context, index) {
final item = documents[index]; final item = documents[index];
......
...@@ -4,17 +4,12 @@ import 'package:cloud_firestore/cloud_firestore.dart'; ...@@ -4,17 +4,12 @@ import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:dispatcher_test/fire_store_test_page.dart'; import 'package:dispatcher_test/fire_store_test_page.dart';
import 'package:dispatcher_test/firebase_options.dart'; import 'package:dispatcher_test/firebase_options.dart';
import 'package:dispatcher_test/module/dependency_inject.dart'; import 'package:dispatcher_test/module/dependency_inject.dart';
import 'package:dispatcher_test/notification_page.dart';
import 'package:dispatcher_test/speech_to_text_page.dart';
import 'package:dispatcher_test/text_to_speech_page.dart';
import 'package:dispatcher_test/text_to_speech_util.dart'; import 'package:dispatcher_test/text_to_speech_util.dart';
import 'package:firebase_core/firebase_core.dart'; import 'package:firebase_core/firebase_core.dart';
import 'package:firebase_messaging/firebase_messaging.dart'; import 'package:firebase_messaging/firebase_messaging.dart';
import 'package:flutter/foundation.dart'; import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_local_notifications/flutter_local_notifications.dart'; import 'package:flutter_local_notifications/flutter_local_notifications.dart';
import 'package:kakao_flutter_sdk_user/kakao_flutter_sdk_user.dart';
import 'package:permission_handler/permission_handler.dart'; import 'package:permission_handler/permission_handler.dart';
import 'package:uuid/uuid.dart'; import 'package:uuid/uuid.dart';
...@@ -109,7 +104,7 @@ void main() async { ...@@ -109,7 +104,7 @@ void main() async {
await Firebase.initializeApp(options: DefaultFirebaseOptions.currentPlatform); await Firebase.initializeApp(options: DefaultFirebaseOptions.currentPlatform);
FirebaseMessaging.onBackgroundMessage(_firebaseMessagingBackgroundHandler); FirebaseMessaging.onBackgroundMessage(_firebaseMessagingBackgroundHandler);
FirebaseFirestore.instance.settings = const Settings( FirebaseFirestore.instance.settings = const Settings(
persistenceEnabled: true, persistenceEnabled: false,
); );
// TODO 카카오 Login init // TODO 카카오 Login init
...@@ -271,9 +266,44 @@ class _MyHomePageState extends State<MyHomePage> { ...@@ -271,9 +266,44 @@ class _MyHomePageState extends State<MyHomePage> {
crossAxisAlignment: CrossAxisAlignment.end, crossAxisAlignment: CrossAxisAlignment.end,
mainAxisAlignment: MainAxisAlignment.end, mainAxisAlignment: MainAxisAlignment.end,
children: [ children: [
// IconButton(onPressed: () {}, icon: Icon(Icons.add)),
// IconButton(onPressed: () {}, icon: Icon(Icons.mic)),
FloatingActionButton( FloatingActionButton(
mini: true,
tooltip: 'Delete',
child: const Icon(Icons.delete),
onPressed: () async {
QuerySnapshot colRef = await store.collection('baecha').get();
for (var element in colRef.docs) {
DocumentReference<Map<String,dynamic>> ref = store.collection('baecha').doc(element.id);
await ref.delete();
}
},
),
const SizedBox(
width: 30,
),
FloatingActionButton(
mini: true,
tooltip: 'Modify',
child: const Icon(Icons.published_with_changes),
onPressed: () async {
// store.collection('baecha').doc().
Random rd = Random();
int rdNum = rd.nextInt(20);
int rdNum2 = rd.nextInt(30);
// String rdStr = sample[rdNum];
QuerySnapshot<Map<String, dynamic>> firstDoc = await store
.collection('baecha')
.orderBy('createDate', descending: true)
.get();
String firstId = firstDoc.docs[0].id ?? '';
store.collection('baecha').doc(firstId).update({'callCnt': rdNum, 'passCnt': rdNum2});
},
),
const SizedBox(
width: 30,
),
FloatingActionButton(
mini: true,
tooltip: 'Increment', tooltip: 'Increment',
child: const Icon(Icons.add), child: const Icon(Icons.add),
onPressed: () { onPressed: () {
...@@ -282,7 +312,7 @@ class _MyHomePageState extends State<MyHomePage> { ...@@ -282,7 +312,7 @@ class _MyHomePageState extends State<MyHomePage> {
int callNum = rd.nextInt(20); int callNum = rd.nextInt(20);
int passNum = rd.nextInt(15); int passNum = rd.nextInt(15);
int minRan = rd.nextInt(30); int minRan = rd.nextInt(30);
DateTime dt = DateTime.now().add(Duration(minutes: minRan)); DateTime dt = DateTime.now();
// String rdStr = sample[rdNum]; // String rdStr = sample[rdNum];
var uuid = const Uuid(); var uuid = const Uuid();
String baljuGroupId = 'baecha_group_00$rdNum'; String baljuGroupId = 'baecha_group_00$rdNum';
...@@ -294,23 +324,6 @@ class _MyHomePageState extends State<MyHomePage> { ...@@ -294,23 +324,6 @@ class _MyHomePageState extends State<MyHomePage> {
}); });
}, },
), ),
const SizedBox(
width: 30,
),
FloatingActionButton(
tooltip: 'Modify',
child: const Icon(Icons.published_with_changes),
onPressed: () async {
// store.collection('baecha').doc().
Random rd = Random();
int rdNum = rd.nextInt(20);
int rdNum2 = rd.nextInt(30);
// String rdStr = sample[rdNum];
QuerySnapshot<Map<String, dynamic>> firstDoc = await store.collection('baecha').get();
String firstId = firstDoc.docs[firstDoc.docs.length - 1].id ?? '';
store.collection('baecha').doc(firstId).update({'callCnt': rdNum, 'passCnt': rdNum2});
},
),
], ],
), // This trailing comma makes auto-formatting nicer for build methods. ), // This trailing comma makes auto-formatting nicer for build methods.
); );
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment