From 90283b6d5cf7b9043714c33388934d93b90cff5f Mon Sep 17 00:00:00 2001 From: "C.V.Hariharan" Date: Fri, 11 Oct 2019 17:35:44 +0530 Subject: [PATCH] Example for firebase DB #24 --- using_firebase_db/.gitignore | 70 +++ using_firebase_db/.metadata | 10 + using_firebase_db/README.md | 16 + using_firebase_db/android/app/build.gradle | 62 +++ .../android/app/src/debug/AndroidManifest.xml | 7 + .../android/app/src/main/AndroidManifest.xml | 33 ++ .../using_firebase_db/MainActivity.java | 13 + .../main/res/drawable/launch_background.xml | 12 + .../src/main/res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 544 bytes .../src/main/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 442 bytes .../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 721 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 1031 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 1443 bytes .../app/src/main/res/values/styles.xml | 8 + .../app/src/profile/AndroidManifest.xml | 7 + using_firebase_db/android/build.gradle | 30 ++ using_firebase_db/android/gradle.properties | 3 + .../gradle/wrapper/gradle-wrapper.properties | 6 + using_firebase_db/android/settings.gradle | 15 + .../ios/Flutter/AppFrameworkInfo.plist | 26 + using_firebase_db/ios/Flutter/Debug.xcconfig | 1 + .../ios/Flutter/Release.xcconfig | 1 + .../ios/Runner.xcodeproj/project.pbxproj | 506 ++++++++++++++++++ .../contents.xcworkspacedata | 7 + .../xcshareddata/xcschemes/Runner.xcscheme | 93 ++++ .../contents.xcworkspacedata | 7 + using_firebase_db/ios/Runner/AppDelegate.h | 6 + using_firebase_db/ios/Runner/AppDelegate.m | 13 + .../AppIcon.appiconset/Contents.json | 122 +++++ .../Icon-App-1024x1024@1x.png | Bin 0 -> 11112 bytes .../AppIcon.appiconset/Icon-App-20x20@1x.png | Bin 0 -> 564 bytes .../AppIcon.appiconset/Icon-App-20x20@2x.png | Bin 0 -> 1283 bytes .../AppIcon.appiconset/Icon-App-20x20@3x.png | Bin 0 -> 1588 bytes .../AppIcon.appiconset/Icon-App-29x29@1x.png | Bin 0 -> 1025 bytes .../AppIcon.appiconset/Icon-App-29x29@2x.png | Bin 0 -> 1716 bytes .../AppIcon.appiconset/Icon-App-29x29@3x.png | Bin 0 -> 1920 bytes .../AppIcon.appiconset/Icon-App-40x40@1x.png | Bin 0 -> 1283 bytes .../AppIcon.appiconset/Icon-App-40x40@2x.png | Bin 0 -> 1895 bytes .../AppIcon.appiconset/Icon-App-40x40@3x.png | Bin 0 -> 2665 bytes .../AppIcon.appiconset/Icon-App-60x60@2x.png | Bin 0 -> 2665 bytes .../AppIcon.appiconset/Icon-App-60x60@3x.png | Bin 0 -> 3831 bytes .../AppIcon.appiconset/Icon-App-76x76@1x.png | Bin 0 -> 1888 bytes .../AppIcon.appiconset/Icon-App-76x76@2x.png | Bin 0 -> 3294 bytes .../Icon-App-83.5x83.5@2x.png | Bin 0 -> 3612 bytes .../LaunchImage.imageset/Contents.json | 23 + .../LaunchImage.imageset/LaunchImage.png | Bin 0 -> 68 bytes .../LaunchImage.imageset/LaunchImage@2x.png | Bin 0 -> 68 bytes .../LaunchImage.imageset/LaunchImage@3x.png | Bin 0 -> 68 bytes .../LaunchImage.imageset/README.md | 5 + .../Runner/Base.lproj/LaunchScreen.storyboard | 37 ++ .../ios/Runner/Base.lproj/Main.storyboard | 26 + using_firebase_db/ios/Runner/Info.plist | 45 ++ using_firebase_db/ios/Runner/main.m | 9 + using_firebase_db/lib/main.dart | 137 +++++ using_firebase_db/pubspec.yaml | 73 +++ using_firebase_db/screenshot.jpg | Bin 0 -> 107973 bytes using_firebase_db/test/widget_test.dart | 30 ++ 57 files changed, 1459 insertions(+) create mode 100644 using_firebase_db/.gitignore create mode 100644 using_firebase_db/.metadata create mode 100644 using_firebase_db/README.md create mode 100644 using_firebase_db/android/app/build.gradle create mode 100644 using_firebase_db/android/app/src/debug/AndroidManifest.xml create mode 100644 using_firebase_db/android/app/src/main/AndroidManifest.xml create mode 100644 using_firebase_db/android/app/src/main/java/com/example/using_firebase_db/MainActivity.java create mode 100644 using_firebase_db/android/app/src/main/res/drawable/launch_background.xml create mode 100644 using_firebase_db/android/app/src/main/res/mipmap-hdpi/ic_launcher.png create mode 100644 using_firebase_db/android/app/src/main/res/mipmap-mdpi/ic_launcher.png create mode 100644 using_firebase_db/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png create mode 100644 using_firebase_db/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 using_firebase_db/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 using_firebase_db/android/app/src/main/res/values/styles.xml create mode 100644 using_firebase_db/android/app/src/profile/AndroidManifest.xml create mode 100644 using_firebase_db/android/build.gradle create mode 100644 using_firebase_db/android/gradle.properties create mode 100644 using_firebase_db/android/gradle/wrapper/gradle-wrapper.properties create mode 100644 using_firebase_db/android/settings.gradle create mode 100644 using_firebase_db/ios/Flutter/AppFrameworkInfo.plist create mode 100644 using_firebase_db/ios/Flutter/Debug.xcconfig create mode 100644 using_firebase_db/ios/Flutter/Release.xcconfig create mode 100644 using_firebase_db/ios/Runner.xcodeproj/project.pbxproj create mode 100644 using_firebase_db/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 using_firebase_db/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme create mode 100644 using_firebase_db/ios/Runner.xcworkspace/contents.xcworkspacedata create mode 100644 using_firebase_db/ios/Runner/AppDelegate.h create mode 100644 using_firebase_db/ios/Runner/AppDelegate.m create mode 100644 using_firebase_db/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 using_firebase_db/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png create mode 100644 using_firebase_db/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png create mode 100644 using_firebase_db/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png create mode 100644 using_firebase_db/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png create mode 100644 using_firebase_db/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png create mode 100644 using_firebase_db/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png create mode 100644 using_firebase_db/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png create mode 100644 using_firebase_db/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png create mode 100644 using_firebase_db/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png create mode 100644 using_firebase_db/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png create mode 100644 using_firebase_db/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png create mode 100644 using_firebase_db/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png create mode 100644 using_firebase_db/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png create mode 100644 using_firebase_db/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png create mode 100644 using_firebase_db/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png create mode 100644 using_firebase_db/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json create mode 100644 using_firebase_db/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png create mode 100644 using_firebase_db/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png create mode 100644 using_firebase_db/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png create mode 100644 using_firebase_db/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md create mode 100644 using_firebase_db/ios/Runner/Base.lproj/LaunchScreen.storyboard create mode 100644 using_firebase_db/ios/Runner/Base.lproj/Main.storyboard create mode 100644 using_firebase_db/ios/Runner/Info.plist create mode 100644 using_firebase_db/ios/Runner/main.m create mode 100644 using_firebase_db/lib/main.dart create mode 100644 using_firebase_db/pubspec.yaml create mode 100644 using_firebase_db/screenshot.jpg create mode 100644 using_firebase_db/test/widget_test.dart diff --git a/using_firebase_db/.gitignore b/using_firebase_db/.gitignore new file mode 100644 index 0000000..07488ba --- /dev/null +++ b/using_firebase_db/.gitignore @@ -0,0 +1,70 @@ +# Miscellaneous +*.class +*.log +*.pyc +*.swp +.DS_Store +.atom/ +.buildlog/ +.history +.svn/ + +# IntelliJ related +*.iml +*.ipr +*.iws +.idea/ + +# Visual Studio Code related +.vscode/ + +# Flutter/Dart/Pub related +**/doc/api/ +.dart_tool/ +.flutter-plugins +.packages +.pub-cache/ +.pub/ +/build/ + +# Android related +**/android/**/gradle-wrapper.jar +**/android/.gradle +**/android/captures/ +**/android/gradlew +**/android/gradlew.bat +**/android/local.properties +**/android/**/GeneratedPluginRegistrant.java + +# iOS/XCode related +**/ios/**/*.mode1v3 +**/ios/**/*.mode2v3 +**/ios/**/*.moved-aside +**/ios/**/*.pbxuser +**/ios/**/*.perspectivev3 +**/ios/**/*sync/ +**/ios/**/.sconsign.dblite +**/ios/**/.tags* +**/ios/**/.vagrant/ +**/ios/**/DerivedData/ +**/ios/**/Icon? +**/ios/**/Pods/ +**/ios/**/.symlinks/ +**/ios/**/profile +**/ios/**/xcuserdata +**/ios/.generated/ +**/ios/Flutter/App.framework +**/ios/Flutter/Flutter.framework +**/ios/Flutter/Generated.xcconfig +**/ios/Flutter/app.flx +**/ios/Flutter/app.zip +**/ios/Flutter/flutter_assets/ +**/ios/ServiceDefinitions.json +**/ios/Runner/GeneratedPluginRegistrant.* + +# Exceptions to above rules. +!**/ios/**/default.mode1v3 +!**/ios/**/default.mode2v3 +!**/ios/**/default.pbxuser +!**/ios/**/default.perspectivev3 +!/packages/flutter_tools/test/data/dart_dependencies_test/**/.packages diff --git a/using_firebase_db/.metadata b/using_firebase_db/.metadata new file mode 100644 index 0000000..033ad2a --- /dev/null +++ b/using_firebase_db/.metadata @@ -0,0 +1,10 @@ +# This file tracks properties of this Flutter project. +# Used by Flutter tool to assess capabilities and perform upgrades etc. +# +# This file should be version controlled and should not be manually edited. + +version: + revision: 7a4c33425ddd78c54aba07d86f3f9a4a0051769b + channel: stable + +project_type: app diff --git a/using_firebase_db/README.md b/using_firebase_db/README.md new file mode 100644 index 0000000..3a4bf7e --- /dev/null +++ b/using_firebase_db/README.md @@ -0,0 +1,16 @@ +# using_firebase_db + +A very basic note taking app to demonstrate the usage of firebase realtime database with flutter. Follow this [guide](https://firebase.google.com/docs/flutter/setup) to setup firebase to work with flutter. This demo will not work without the `google-services.json` file. Add notes by using the Floating Action Button and delete notes by long pressing them. + +## Getting Started + +This project is a starting point for a Flutter application. + +A few resources to get you started if this is your first Flutter project: + +- [Lab: Write your first Flutter app](https://flutter.dev/docs/get-started/codelab) +- [Cookbook: Useful Flutter samples](https://flutter.dev/docs/cookbook) + +For help getting started with Flutter, view our +[online documentation](https://flutter.dev/docs), which offers tutorials, +samples, guidance on mobile development, and a full API reference. diff --git a/using_firebase_db/android/app/build.gradle b/using_firebase_db/android/app/build.gradle new file mode 100644 index 0000000..9b9a5a6 --- /dev/null +++ b/using_firebase_db/android/app/build.gradle @@ -0,0 +1,62 @@ +def localProperties = new Properties() +def localPropertiesFile = rootProject.file('local.properties') +if (localPropertiesFile.exists()) { + localPropertiesFile.withReader('UTF-8') { reader -> + localProperties.load(reader) + } +} + +def flutterRoot = localProperties.getProperty('flutter.sdk') +if (flutterRoot == null) { + throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.") +} + +def flutterVersionCode = localProperties.getProperty('flutter.versionCode') +if (flutterVersionCode == null) { + flutterVersionCode = '1' +} + +def flutterVersionName = localProperties.getProperty('flutter.versionName') +if (flutterVersionName == null) { + flutterVersionName = '1.0' +} + +apply plugin: 'com.android.application' +apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle" + +android { + compileSdkVersion 28 + + lintOptions { + disable 'InvalidPackage' + } + + defaultConfig { + // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). + applicationId "com.example.using_firebase_db" + minSdkVersion 16 + targetSdkVersion 28 + versionCode flutterVersionCode.toInteger() + versionName flutterVersionName + testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + } + + buildTypes { + release { + // TODO: Add your own signing config for the release build. + // Signing with the debug keys for now, so `flutter run --release` works. + signingConfig signingConfigs.debug + } + } +} + +flutter { + source '../..' +} + +dependencies { + testImplementation 'junit:junit:4.12' + androidTestImplementation 'androidx.test:runner:1.1.1' + androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1' +} +apply plugin: 'com.google.gms.google-services' \ No newline at end of file diff --git a/using_firebase_db/android/app/src/debug/AndroidManifest.xml b/using_firebase_db/android/app/src/debug/AndroidManifest.xml new file mode 100644 index 0000000..3409f8a --- /dev/null +++ b/using_firebase_db/android/app/src/debug/AndroidManifest.xml @@ -0,0 +1,7 @@ + + + + diff --git a/using_firebase_db/android/app/src/main/AndroidManifest.xml b/using_firebase_db/android/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000..ac55536 --- /dev/null +++ b/using_firebase_db/android/app/src/main/AndroidManifest.xml @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + diff --git a/using_firebase_db/android/app/src/main/java/com/example/using_firebase_db/MainActivity.java b/using_firebase_db/android/app/src/main/java/com/example/using_firebase_db/MainActivity.java new file mode 100644 index 0000000..0c3f5ca --- /dev/null +++ b/using_firebase_db/android/app/src/main/java/com/example/using_firebase_db/MainActivity.java @@ -0,0 +1,13 @@ +package com.example.using_firebase_db; + +import android.os.Bundle; +import io.flutter.app.FlutterActivity; +import io.flutter.plugins.GeneratedPluginRegistrant; + +public class MainActivity extends FlutterActivity { + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + GeneratedPluginRegistrant.registerWith(this); + } +} diff --git a/using_firebase_db/android/app/src/main/res/drawable/launch_background.xml b/using_firebase_db/android/app/src/main/res/drawable/launch_background.xml new file mode 100644 index 0000000..304732f --- /dev/null +++ b/using_firebase_db/android/app/src/main/res/drawable/launch_background.xml @@ -0,0 +1,12 @@ + + + + + + + + diff --git a/using_firebase_db/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/using_firebase_db/android/app/src/main/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..db77bb4b7b0906d62b1847e87f15cdcacf6a4f29 GIT binary patch literal 544 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY3?!3`olAj~WQl7;NpOBzNqJ&XDuZK6ep0G} zXKrG8YEWuoN@d~6R2!h8bpbvhu0Wd6uZuB!w&u2PAxD2eNXD>P5D~Wn-+_Wa#27Xc zC?Zj|6r#X(-D3u$NCt}(Ms06KgJ4FxJVv{GM)!I~&n8Bnc94O7-Hd)cjDZswgC;Qs zO=b+9!WcT8F?0rF7!Uys2bs@gozCP?z~o%U|N3vA*22NaGQG zlg@K`O_XuxvZ&Ks^m&R!`&1=spLvfx7oGDKDwpwW`#iqdw@AL`7MR}m`rwr|mZgU`8P7SBkL78fFf!WnuYWm$5Z0 zNXhDbCv&49sM544K|?c)WrFfiZvCi9h0O)B3Pgg&ebxsLQ05GG~ AQ2+n{ literal 0 HcmV?d00001 diff --git a/using_firebase_db/android/app/src/main/res/mipmap-mdpi/ic_launcher.png b/using_firebase_db/android/app/src/main/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..17987b79bb8a35cc66c3c1fd44f5a5526c1b78be GIT binary patch literal 442 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA3?vioaBc-sk|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5Xx&nMcT!A!W`0S9QKQy;}1Cl^CgaH=;G9cpY;r$Q>i*pfB zP2drbID<_#qf;rPZx^FqH)F_D#*k@@q03KywUtLX8Ua?`H+NMzkczFPK3lFz@i_kW%1NOn0|D2I9n9wzH8m|-tHjsw|9>@K=iMBhxvkv6m8Y-l zytQ?X=U+MF$@3 zt`~i=@j|6y)RWMK--}M|=T`o&^Ni>IoWKHEbBXz7?A@mgWoL>!*SXo`SZH-*HSdS+ yn*9;$7;m`l>wYBC5bq;=U}IMqLzqbYCidGC!)_gkIk_C@Uy!y&wkt5C($~2D>~)O*cj@FGjOCM)M>_ixfudOh)?xMu#Fs z#}Y=@YDTwOM)x{K_j*Q;dPdJ?Mz0n|pLRx{4n|)f>SXlmV)XB04CrSJn#dS5nK2lM zrZ9#~WelCp7&e13Y$jvaEXHskn$2V!!DN-nWS__6T*l;H&Fopn?A6HZ-6WRLFP=R` zqG+CE#d4|IbyAI+rJJ`&x9*T`+a=p|0O(+s{UBcyZdkhj=yS1>AirP+0R;mf2uMgM zC}@~JfByORAh4SyRgi&!(cja>F(l*O+nd+@4m$|6K6KDn_&uvCpV23&>G9HJp{xgg zoq1^2_p9@|WEo z*X_Uko@K)qYYv~>43eQGMdbiGbo>E~Q& zrYBH{QP^@Sti!`2)uG{irBBq@y*$B zi#&(U-*=fp74j)RyIw49+0MRPMRU)+a2r*PJ$L5roHt2$UjExCTZSbq%V!HeS7J$N zdG@vOZB4v_lF7Plrx+hxo7(fCV&}fHq)$ literal 0 HcmV?d00001 diff --git a/using_firebase_db/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/using_firebase_db/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..d5f1c8d34e7a88e3f88bea192c3a370d44689c3c GIT binary patch literal 1031 zcmeAS@N?(olHy`uVBq!ia0vp^6F``Q8Ax83A=Cw=BuiW)N`mv#O3D+9QW+dm@{>{( zJaZG%Q-e|yQz{EjrrIztFa`(sgt!6~Yi|1%a`XoT0ojZ}lNrNjb9xjc(B0U1_% zz5^97Xt*%oq$rQy4?0GKNfJ44uvxI)gC`h-NZ|&0-7(qS@?b!5r36oQ}zyZrNO3 zMO=Or+<~>+A&uN&E!^Sl+>xE!QC-|oJv`ApDhqC^EWD|@=#J`=d#Xzxs4ah}w&Jnc z$|q_opQ^2TrnVZ0o~wh<3t%W&flvYGe#$xqda2bR_R zvPYgMcHgjZ5nSA^lJr%;<&0do;O^tDDh~=pIxA#coaCY>&N%M2^tq^U%3DB@ynvKo}b?yu-bFc-u0JHzced$sg7S3zqI(2 z#Km{dPr7I=pQ5>FuK#)QwK?Y`E`B?nP+}U)I#c1+FM*1kNvWG|a(TpksZQ3B@sD~b zpQ2)*V*TdwjFOtHvV|;OsiDqHi=6%)o4b!)x$)%9pGTsE z-JL={-Ffv+T87W(Xpooq<`r*VzWQcgBN$$`u}f>-ZQI1BB8ykN*=e4rIsJx9>z}*o zo~|9I;xof literal 0 HcmV?d00001 diff --git a/using_firebase_db/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/using_firebase_db/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..4d6372eebdb28e45604e46eeda8dd24651419bc0 GIT binary patch literal 1443 zcmb`G{WsKk6vsdJTdFg%tJav9_E4vzrOaqkWF|A724Nly!y+?N9`YV6wZ}5(X(D_N(?!*n3`|_r0Hc?=PQw&*vnU?QTFY zB_MsH|!j$PP;I}?dppoE_gA(4uc!jV&0!l7_;&p2^pxNo>PEcNJv za5_RT$o2Mf!<+r?&EbHH6nMoTsDOa;mN(wv8RNsHpG)`^ymG-S5By8=l9iVXzN_eG%Xg2@Xeq76tTZ*dGh~Lo9vl;Zfs+W#BydUw zCkZ$o1LqWQO$FC9aKlLl*7x9^0q%0}$OMlp@Kk_jHXOjofdePND+j!A{q!8~Jn+s3 z?~~w@4?egS02}8NuulUA=L~QQfm;MzCGd)XhiftT;+zFO&JVyp2mBww?;QByS_1w! zrQlx%{^cMj0|Bo1FjwY@Q8?Hx0cIPF*@-ZRFpPc#bBw{5@tD(5%sClzIfl8WU~V#u zm5Q;_F!wa$BSpqhN>W@2De?TKWR*!ujY;Yylk_X5#~V!L*Gw~;$%4Q8~Mad z@`-kG?yb$a9cHIApZDVZ^U6Xkp<*4rU82O7%}0jjHlK{id@?-wpN*fCHXyXh(bLt* zPc}H-x0e4E&nQ>y%B-(EL=9}RyC%MyX=upHuFhAk&MLbsF0LP-q`XnH78@fT+pKPW zu72MW`|?8ht^tz$iC}ZwLp4tB;Q49K!QCF3@!iB1qOI=?w z7In!}F~ij(18UYUjnbmC!qKhPo%24?8U1x{7o(+?^Zu0Hx81|FuS?bJ0jgBhEMzf< zCgUq7r2OCB(`XkKcN-TL>u5y#dD6D!)5W?`O5)V^>jb)P)GBdy%t$uUMpf$SNV31$ zb||OojAbvMP?T@$h_ZiFLFVHDmbyMhJF|-_)HX3%m=CDI+ID$0^C>kzxprBW)hw(v zr!Gmda);ICoQyhV_oP5+C%?jcG8v+D@9f?Dk*!BxY}dazmrT@64UrP3hlslANK)bq z$67n83eh}OeW&SV@HG95P|bjfqJ7gw$e+`Hxo!4cx`jdK1bJ>YDSpGKLPZ^1cv$ek zIB?0S<#tX?SJCLWdMd{-ME?$hc7A$zBOdIJ)4!KcAwb=VMov)nK;9z>x~rfT1>dS+ zZ6#`2v@`jgbqq)P22H)Tx2CpmM^o1$B+xT6`(v%5xJ(?j#>Q$+rx_R|7TzDZe{J6q zG1*EcU%tE?!kO%^M;3aM6JN*LAKUVb^xz8-Pxo#jR5(-KBeLJvA@-gxNHx0M-ZJLl z;#JwQoh~9V?`UVo#}{6ka@II>++D@%KqGpMdlQ}?9E*wFcf5(#XQnP$Dk5~%iX^>f z%$y;?M0BLp{O3a(-4A?ewryHrrD%cx#Q^%KY1H zNre$ve+vceSLZcNY4U(RBX&)oZn*Py()h)XkE?PL$!bNb{N5FVI2Y%LKEm%yvpyTP z(1P?z~7YxD~Rf<(a@_y` literal 0 HcmV?d00001 diff --git a/using_firebase_db/android/app/src/main/res/values/styles.xml b/using_firebase_db/android/app/src/main/res/values/styles.xml new file mode 100644 index 0000000..00fa441 --- /dev/null +++ b/using_firebase_db/android/app/src/main/res/values/styles.xml @@ -0,0 +1,8 @@ + + + + diff --git a/using_firebase_db/android/app/src/profile/AndroidManifest.xml b/using_firebase_db/android/app/src/profile/AndroidManifest.xml new file mode 100644 index 0000000..3409f8a --- /dev/null +++ b/using_firebase_db/android/app/src/profile/AndroidManifest.xml @@ -0,0 +1,7 @@ + + + + diff --git a/using_firebase_db/android/build.gradle b/using_firebase_db/android/build.gradle new file mode 100644 index 0000000..66fc627 --- /dev/null +++ b/using_firebase_db/android/build.gradle @@ -0,0 +1,30 @@ +buildscript { + repositories { + google() + jcenter() + } + + dependencies { + classpath 'com.android.tools.build:gradle:3.3.0' + classpath 'com.google.gms:google-services:4.3.2' + } +} + +allprojects { + repositories { + google() + jcenter() + } +} + +rootProject.buildDir = '../build' +subprojects { + project.buildDir = "${rootProject.buildDir}/${project.name}" +} +subprojects { + project.evaluationDependsOn(':app') +} + +task clean(type: Delete) { + delete rootProject.buildDir +} diff --git a/using_firebase_db/android/gradle.properties b/using_firebase_db/android/gradle.properties new file mode 100644 index 0000000..08f2b5f --- /dev/null +++ b/using_firebase_db/android/gradle.properties @@ -0,0 +1,3 @@ +org.gradle.jvmargs=-Xmx1536M +android.enableJetifier=true +android.useAndroidX=true diff --git a/using_firebase_db/android/gradle/wrapper/gradle-wrapper.properties b/using_firebase_db/android/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..2819f02 --- /dev/null +++ b/using_firebase_db/android/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,6 @@ +#Fri Jun 23 08:50:38 CEST 2017 +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.2-all.zip diff --git a/using_firebase_db/android/settings.gradle b/using_firebase_db/android/settings.gradle new file mode 100644 index 0000000..5a2f14f --- /dev/null +++ b/using_firebase_db/android/settings.gradle @@ -0,0 +1,15 @@ +include ':app' + +def flutterProjectRoot = rootProject.projectDir.parentFile.toPath() + +def plugins = new Properties() +def pluginsFile = new File(flutterProjectRoot.toFile(), '.flutter-plugins') +if (pluginsFile.exists()) { + pluginsFile.withReader('UTF-8') { reader -> plugins.load(reader) } +} + +plugins.each { name, path -> + def pluginDirectory = flutterProjectRoot.resolve(path).resolve('android').toFile() + include ":$name" + project(":$name").projectDir = pluginDirectory +} diff --git a/using_firebase_db/ios/Flutter/AppFrameworkInfo.plist b/using_firebase_db/ios/Flutter/AppFrameworkInfo.plist new file mode 100644 index 0000000..9367d48 --- /dev/null +++ b/using_firebase_db/ios/Flutter/AppFrameworkInfo.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + App + CFBundleIdentifier + io.flutter.flutter.app + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + App + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1.0 + MinimumOSVersion + 8.0 + + diff --git a/using_firebase_db/ios/Flutter/Debug.xcconfig b/using_firebase_db/ios/Flutter/Debug.xcconfig new file mode 100644 index 0000000..592ceee --- /dev/null +++ b/using_firebase_db/ios/Flutter/Debug.xcconfig @@ -0,0 +1 @@ +#include "Generated.xcconfig" diff --git a/using_firebase_db/ios/Flutter/Release.xcconfig b/using_firebase_db/ios/Flutter/Release.xcconfig new file mode 100644 index 0000000..592ceee --- /dev/null +++ b/using_firebase_db/ios/Flutter/Release.xcconfig @@ -0,0 +1 @@ +#include "Generated.xcconfig" diff --git a/using_firebase_db/ios/Runner.xcodeproj/project.pbxproj b/using_firebase_db/ios/Runner.xcodeproj/project.pbxproj new file mode 100644 index 0000000..7ec807a --- /dev/null +++ b/using_firebase_db/ios/Runner.xcodeproj/project.pbxproj @@ -0,0 +1,506 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXBuildFile section */ + 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; }; + 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; }; + 3B80C3941E831B6300D905FE /* App.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3B80C3931E831B6300D905FE /* App.framework */; }; + 3B80C3951E831B6300D905FE /* App.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 3B80C3931E831B6300D905FE /* App.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 9705A1C61CF904A100538489 /* Flutter.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9740EEBA1CF902C7004384FC /* Flutter.framework */; }; + 9705A1C71CF904A300538489 /* Flutter.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 9740EEBA1CF902C7004384FC /* Flutter.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 9740EEB41CF90195004384FC /* Debug.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = 9740EEB21CF90195004384FC /* Debug.xcconfig */; }; + 978B8F6F1D3862AE00F588F7 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 7AFFD8EE1D35381100E5BB4D /* AppDelegate.m */; }; + 97C146F31CF9000F007C117D /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 97C146F21CF9000F007C117D /* main.m */; }; + 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; }; + 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; }; + 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; }; +/* End PBXBuildFile section */ + +/* Begin PBXCopyFilesBuildPhase section */ + 9705A1C41CF9048500538489 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + 3B80C3951E831B6300D905FE /* App.framework in Embed Frameworks */, + 9705A1C71CF904A300538489 /* Flutter.framework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = ""; }; + 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = ""; }; + 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; }; + 3B80C3931E831B6300D905FE /* App.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = App.framework; path = Flutter/App.framework; sourceTree = ""; }; + 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; }; + 7AFFD8ED1D35381100E5BB4D /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; + 7AFFD8EE1D35381100E5BB4D /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; + 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = ""; }; + 9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = ""; }; + 9740EEBA1CF902C7004384FC /* Flutter.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Flutter.framework; path = Flutter/Flutter.framework; sourceTree = ""; }; + 97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 97C146F21CF9000F007C117D /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; + 97C146FB1CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; + 97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; + 97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 97C146EB1CF9000F007C117D /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 9705A1C61CF904A100538489 /* Flutter.framework in Frameworks */, + 3B80C3941E831B6300D905FE /* App.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 9740EEB11CF90186004384FC /* Flutter */ = { + isa = PBXGroup; + children = ( + 3B80C3931E831B6300D905FE /* App.framework */, + 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */, + 9740EEBA1CF902C7004384FC /* Flutter.framework */, + 9740EEB21CF90195004384FC /* Debug.xcconfig */, + 7AFA3C8E1D35360C0083082E /* Release.xcconfig */, + 9740EEB31CF90195004384FC /* Generated.xcconfig */, + ); + name = Flutter; + sourceTree = ""; + }; + 97C146E51CF9000F007C117D = { + isa = PBXGroup; + children = ( + 9740EEB11CF90186004384FC /* Flutter */, + 97C146F01CF9000F007C117D /* Runner */, + 97C146EF1CF9000F007C117D /* Products */, + CF3B75C9A7D2FA2A4C99F110 /* Frameworks */, + ); + sourceTree = ""; + }; + 97C146EF1CF9000F007C117D /* Products */ = { + isa = PBXGroup; + children = ( + 97C146EE1CF9000F007C117D /* Runner.app */, + ); + name = Products; + sourceTree = ""; + }; + 97C146F01CF9000F007C117D /* Runner */ = { + isa = PBXGroup; + children = ( + 7AFFD8ED1D35381100E5BB4D /* AppDelegate.h */, + 7AFFD8EE1D35381100E5BB4D /* AppDelegate.m */, + 97C146FA1CF9000F007C117D /* Main.storyboard */, + 97C146FD1CF9000F007C117D /* Assets.xcassets */, + 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */, + 97C147021CF9000F007C117D /* Info.plist */, + 97C146F11CF9000F007C117D /* Supporting Files */, + 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */, + 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */, + ); + path = Runner; + sourceTree = ""; + }; + 97C146F11CF9000F007C117D /* Supporting Files */ = { + isa = PBXGroup; + children = ( + 97C146F21CF9000F007C117D /* main.m */, + ); + name = "Supporting Files"; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 97C146ED1CF9000F007C117D /* Runner */ = { + isa = PBXNativeTarget; + buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */; + buildPhases = ( + 9740EEB61CF901F6004384FC /* Run Script */, + 97C146EA1CF9000F007C117D /* Sources */, + 97C146EB1CF9000F007C117D /* Frameworks */, + 97C146EC1CF9000F007C117D /* Resources */, + 9705A1C41CF9048500538489 /* Embed Frameworks */, + 3B06AD1E1E4923F5004D2608 /* Thin Binary */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = Runner; + productName = Runner; + productReference = 97C146EE1CF9000F007C117D /* Runner.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 97C146E61CF9000F007C117D /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 0910; + ORGANIZATIONNAME = "The Chromium Authors"; + TargetAttributes = { + 97C146ED1CF9000F007C117D = { + CreatedOnToolsVersion = 7.3.1; + }; + }; + }; + buildConfigurationList = 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 97C146E51CF9000F007C117D; + productRefGroup = 97C146EF1CF9000F007C117D /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 97C146ED1CF9000F007C117D /* Runner */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 97C146EC1CF9000F007C117D /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */, + 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */, + 9740EEB41CF90195004384FC /* Debug.xcconfig in Resources */, + 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */, + 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Thin Binary"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" thin"; + }; + 9740EEB61CF901F6004384FC /* Run Script */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Run Script"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build"; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 97C146EA1CF9000F007C117D /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 978B8F6F1D3862AE00F588F7 /* AppDelegate.m in Sources */, + 97C146F31CF9000F007C117D /* main.m in Sources */, + 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ + 97C146FA1CF9000F007C117D /* Main.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 97C146FB1CF9000F007C117D /* Base */, + ); + name = Main.storyboard; + sourceTree = ""; + }; + 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 97C147001CF9000F007C117D /* Base */, + ); + name = LaunchScreen.storyboard; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 249021D3217E4FDB00AE95B9 /* Profile */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Profile; + }; + 249021D4217E4FDB00AE95B9 /* Profile */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + DEVELOPMENT_TEAM = S8QB4VV633; + ENABLE_BITCODE = NO; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Flutter", + ); + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Flutter", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.example.usingFirebaseDb; + PRODUCT_NAME = "$(TARGET_NAME)"; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Profile; + }; + 97C147031CF9000F007C117D /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 97C147041CF9000F007C117D /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 97C147061CF9000F007C117D /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + ENABLE_BITCODE = NO; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Flutter", + ); + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Flutter", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.example.usingFirebaseDb; + PRODUCT_NAME = "$(TARGET_NAME)"; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Debug; + }; + 97C147071CF9000F007C117D /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + ENABLE_BITCODE = NO; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Flutter", + ); + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Flutter", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.example.usingFirebaseDb; + PRODUCT_NAME = "$(TARGET_NAME)"; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 97C147031CF9000F007C117D /* Debug */, + 97C147041CF9000F007C117D /* Release */, + 249021D3217E4FDB00AE95B9 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 97C147061CF9000F007C117D /* Debug */, + 97C147071CF9000F007C117D /* Release */, + 249021D4217E4FDB00AE95B9 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 97C146E61CF9000F007C117D /* Project object */; +} diff --git a/using_firebase_db/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/using_firebase_db/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..1d526a1 --- /dev/null +++ b/using_firebase_db/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/using_firebase_db/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/using_firebase_db/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme new file mode 100644 index 0000000..786d6aa --- /dev/null +++ b/using_firebase_db/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -0,0 +1,93 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/using_firebase_db/ios/Runner.xcworkspace/contents.xcworkspacedata b/using_firebase_db/ios/Runner.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..1d526a1 --- /dev/null +++ b/using_firebase_db/ios/Runner.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/using_firebase_db/ios/Runner/AppDelegate.h b/using_firebase_db/ios/Runner/AppDelegate.h new file mode 100644 index 0000000..36e21bb --- /dev/null +++ b/using_firebase_db/ios/Runner/AppDelegate.h @@ -0,0 +1,6 @@ +#import +#import + +@interface AppDelegate : FlutterAppDelegate + +@end diff --git a/using_firebase_db/ios/Runner/AppDelegate.m b/using_firebase_db/ios/Runner/AppDelegate.m new file mode 100644 index 0000000..59a72e9 --- /dev/null +++ b/using_firebase_db/ios/Runner/AppDelegate.m @@ -0,0 +1,13 @@ +#include "AppDelegate.h" +#include "GeneratedPluginRegistrant.h" + +@implementation AppDelegate + +- (BOOL)application:(UIApplication *)application + didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { + [GeneratedPluginRegistrant registerWithRegistry:self]; + // Override point for customization after application launch. + return [super application:application didFinishLaunchingWithOptions:launchOptions]; +} + +@end diff --git a/using_firebase_db/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json b/using_firebase_db/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..d36b1fa --- /dev/null +++ b/using_firebase_db/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,122 @@ +{ + "images" : [ + { + "size" : "20x20", + "idiom" : "iphone", + "filename" : "Icon-App-20x20@2x.png", + "scale" : "2x" + }, + { + "size" : "20x20", + "idiom" : "iphone", + "filename" : "Icon-App-20x20@3x.png", + "scale" : "3x" + }, + { + "size" : "29x29", + "idiom" : "iphone", + "filename" : "Icon-App-29x29@1x.png", + "scale" : "1x" + }, + { + "size" : "29x29", + "idiom" : "iphone", + "filename" : "Icon-App-29x29@2x.png", + "scale" : "2x" + }, + { + "size" : "29x29", + "idiom" : "iphone", + "filename" : "Icon-App-29x29@3x.png", + "scale" : "3x" + }, + { + "size" : "40x40", + "idiom" : "iphone", + "filename" : "Icon-App-40x40@2x.png", + "scale" : "2x" + }, + { + "size" : "40x40", + "idiom" : "iphone", + "filename" : "Icon-App-40x40@3x.png", + "scale" : "3x" + }, + { + "size" : "60x60", + "idiom" : "iphone", + "filename" : "Icon-App-60x60@2x.png", + "scale" : "2x" + }, + { + "size" : "60x60", + "idiom" : "iphone", + "filename" : "Icon-App-60x60@3x.png", + "scale" : "3x" + }, + { + "size" : "20x20", + "idiom" : "ipad", + "filename" : "Icon-App-20x20@1x.png", + "scale" : "1x" + }, + { + "size" : "20x20", + "idiom" : "ipad", + "filename" : "Icon-App-20x20@2x.png", + "scale" : "2x" + }, + { + "size" : "29x29", + "idiom" : "ipad", + "filename" : "Icon-App-29x29@1x.png", + "scale" : "1x" + }, + { + "size" : "29x29", + "idiom" : "ipad", + "filename" : "Icon-App-29x29@2x.png", + "scale" : "2x" + }, + { + "size" : "40x40", + "idiom" : "ipad", + "filename" : "Icon-App-40x40@1x.png", + "scale" : "1x" + }, + { + "size" : "40x40", + "idiom" : "ipad", + "filename" : "Icon-App-40x40@2x.png", + "scale" : "2x" + }, + { + "size" : "76x76", + "idiom" : "ipad", + "filename" : "Icon-App-76x76@1x.png", + "scale" : "1x" + }, + { + "size" : "76x76", + "idiom" : "ipad", + "filename" : "Icon-App-76x76@2x.png", + "scale" : "2x" + }, + { + "size" : "83.5x83.5", + "idiom" : "ipad", + "filename" : "Icon-App-83.5x83.5@2x.png", + "scale" : "2x" + }, + { + "size" : "1024x1024", + "idiom" : "ios-marketing", + "filename" : "Icon-App-1024x1024@1x.png", + "scale" : "1x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} diff --git a/using_firebase_db/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png b/using_firebase_db/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..3d43d11e66f4de3da27ed045ca4fe38ad8b48094 GIT binary patch literal 11112 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 P-1+_A+?hGkL;m(J7kc&K literal 0 HcmV?d00001 diff --git a/using_firebase_db/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png b/using_firebase_db/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..28c6bf03016f6c994b70f38d1b7346e5831b531f GIT binary patch literal 564 zcmV-40?Yl0P)Px$?ny*JR5%f>l)FnDQ543{x%ZCiu33$Wg!pQFfT_}?5Q|_VSlIbLC`dpoMXL}9 zHfd9&47Mo(7D231gb+kjFxZHS4-m~7WurTH&doVX2KI5sU4v(sJ1@T9eCIKPjsqSr z)C01LsCxk=72-vXmX}CQD#BD;Cthymh&~=f$Q8nn0J<}ZrusBy4PvRNE}+1ceuj8u z0mW5k8fmgeLnTbWHGwfKA3@PdZxhn|PypR&^p?weGftrtCbjF#+zk_5BJh7;0`#Wr zgDpM_;Ax{jO##IrT`Oz;MvfwGfV$zD#c2xckpcXC6oou4ML~ezCc2EtnsQTB4tWNg z?4bkf;hG7IMfhgNI(FV5Gs4|*GyMTIY0$B=_*mso9Ityq$m^S>15>-?0(zQ<8Qy<_TjHE33(?_M8oaM zyc;NxzRVK@DL6RJnX%U^xW0Gpg(lXp(!uK1v0YgHjs^ZXSQ|m#lV7ip7{`C_J2TxPmfw%h$|%acrYHt)Re^PB%O&&=~a zhS(%I#+V>J-vjIib^<+s%ludY7y^C(P8nmqn9fp!i+?vr`bziDE=bx`%2W#Xyrj|i z!XQ4v1%L`m{7KT7q+LZNB^h8Ha2e=`Wp65^0;J00)_^G=au=8Yo;1b`CV&@#=jIBo zjN^JNVfYSs)+kDdGe7`1&8!?MQYKS?DuHZf3iogk_%#9E|5S zWeHrmAo>P;ejX7mwq#*}W25m^ZI+{(Z8fI?4jM_fffY0nok=+88^|*_DwcW>mR#e+ zX$F_KMdb6sRz!~7KkyN0G(3XQ+;z3X%PZ4gh;n-%62U<*VUKNv(D&Q->Na@Xb&u5Q3`3DGf+a8O5x7c#7+R+EAYl@R5us)CIw z7sT@_y~Ao@uL#&^LIh&QceqiT^+lb0YbFZt_SHOtWA%mgPEKVNvVgCsXy{5+zl*X8 zCJe)Q@y>wH^>l4;h1l^Y*9%-23TSmE>q5nI@?mt%n;Sj4Qq`Z+ib)a*a^cJc%E9^J zB;4s+K@rARbcBLT5P=@r;IVnBMKvT*)ew*R;&8vu%?Z&S>s?8?)3*YawM0P4!q$Kv zMmKh3lgE~&w&v%wVzH3Oe=jeNT=n@Y6J6TdHWTjXfX~-=1A1Bw`EW8rn}MqeI34nh zexFeA?&C3B2(E?0{drE@DA2pu(A#ElY&6el60Rn|Qpn-FkfQ8M93AfWIr)drgDFEU zghdWK)^71EWCP(@(=c4kfH1Y(4iugD4fve6;nSUpLT%!)MUHs1!zJYy4y||C+SwQ! z)KM&$7_tyM`sljP2fz6&Z;jxRn{Wup8IOUx8D4uh&(=O zx-7$a;U><*5L^!%xRlw)vAbh;sdlR||& ze}8_8%)c2Fwy=F&H|LM+p{pZB5DKTx>Y?F1N%BlZkXf!}JeGuMZk~LPi7{cidvUGB zAJ4LVeNV%XO>LTrklB#^-;8nb;}6l;1oW&WS=Mz*Az!4cqqQzbOSFq`$Q%PfD7srM zpKgP-D_0XPTRX*hAqeq0TDkJ;5HB1%$3Np)99#16c{ zJImlNL(npL!W|Gr_kxl1GVmF5&^$^YherS7+~q$p zt}{a=*RiD2Ikv6o=IM1kgc7zqpaZ;OB)P!1zz*i3{U()Dq#jG)egvK}@uFLa`oyWZ zf~=MV)|yJn`M^$N%ul5);JuQvaU1r2wt(}J_Qgyy`qWQI`hEeRX0uC@c1(dQ2}=U$ tNIIaX+dr)NRWXcxoR{>fqI{SF_dm1Ylv~=3YHI)h002ovPDHLkV1g(pWS;;4 literal 0 HcmV?d00001 diff --git a/using_firebase_db/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png b/using_firebase_db/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..f091b6b0bca859a3f474b03065bef75ba58a9e4c GIT binary patch literal 1588 zcmV-42Fv-0P)C1SqPt}wig>|5Crh^=oyX$BK<}M8eLU3e2hGT;=G|!_SP)7zNI6fqUMB=)y zRAZ>eDe#*r`yDAVgB_R*LB*MAc)8(b{g{9McCXW!lq7r(btRoB9!8B-#AI6JMb~YFBEvdsV)`mEQO^&#eRKx@b&x- z5lZm*!WfD8oCLzfHGz#u7sT0^VLMI1MqGxF^v+`4YYnVYgk*=kU?HsSz{v({E3lb9 z>+xILjBN)t6`=g~IBOelGQ(O990@BfXf(DRI5I$qN$0Gkz-FSc$3a+2fX$AedL4u{ z4V+5Ong(9LiGcIKW?_352sR;LtDPmPJXI{YtT=O8=76o9;*n%_m|xo!i>7$IrZ-{l z-x3`7M}qzHsPV@$v#>H-TpjDh2UE$9g6sysUREDy_R(a)>=eHw-WAyfIN z*qb!_hW>G)Tu8nSw9yn#3wFMiLcfc4pY0ek1}8(NqkBR@t4{~oC>ryc-h_ByH(Cg5 z>ao-}771+xE3um9lWAY1FeQFxowa1(!J(;Jg*wrg!=6FdRX+t_<%z&d&?|Bn){>zm zZQj(aA_HeBY&OC^jj*)N`8fa^ePOU72VpInJoI1?`ty#lvlNzs(&MZX+R%2xS~5Kh zX*|AU4QE#~SgPzOXe9>tRj>hjU@c1k5Y_mW*Jp3fI;)1&g3j|zDgC+}2Q_v%YfDax z!?umcN^n}KYQ|a$Lr+51Nf9dkkYFSjZZjkma$0KOj+;aQ&721~t7QUKx61J3(P4P1 zstI~7-wOACnWP4=8oGOwz%vNDqD8w&Q`qcNGGrbbf&0s9L0De{4{mRS?o0MU+nR_! zrvshUau0G^DeMhM_v{5BuLjb#Hh@r23lDAk8oF(C+P0rsBpv85EP>4CVMx#04MOfG z;P%vktHcXwTj~+IE(~px)3*MY77e}p#|c>TD?sMatC0Tu4iKKJ0(X8jxQY*gYtxsC z(zYC$g|@+I+kY;dg_dE>scBf&bP1Nc@Hz<3R)V`=AGkc;8CXqdi=B4l2k|g;2%#m& z*jfX^%b!A8#bI!j9-0Fi0bOXl(-c^AB9|nQaE`*)Hw+o&jS9@7&Gov#HbD~#d{twV zXd^Tr^mWLfFh$@Dr$e;PBEz4(-2q1FF0}c;~B5sA}+Q>TOoP+t>wf)V9Iy=5ruQa;z)y zI9C9*oUga6=hxw6QasLPnee@3^Rr*M{CdaL5=R41nLs(AHk_=Y+A9$2&H(B7!_pURs&8aNw7?`&Z&xY_Ye z)~D5Bog^td-^QbUtkTirdyK^mTHAOuptDflut!#^lnKqU md>ggs(5nOWAqO?umG&QVYK#ibz}*4>0000U6E9hRK9^#O7(mu>ETqrXGsduA8$)?`v2seloOCza43C{NQ$$gAOH**MCn0Q?+L7dl7qnbRdqZ8LSVp1ItDxhxD?t@5_yHg6A8yI zC*%Wgg22K|8E#!~cTNYR~@Y9KepMPrrB8cABapAFa=`H+UGhkXUZV1GnwR1*lPyZ;*K(i~2gp|@bzp8}og7e*#% zEnr|^CWdVV!-4*Y_7rFvlww2Ze+>j*!Z!pQ?2l->4q#nqRu9`ELo6RMS5=br47g_X zRw}P9a7RRYQ%2Vsd0Me{_(EggTnuN6j=-?uFS6j^u69elMypu?t>op*wBx<=Wx8?( ztpe^(fwM6jJX7M-l*k3kEpWOl_Vk3@(_w4oc}4YF4|Rt=2V^XU?#Yz`8(e?aZ@#li0n*=g^qOcVpd-Wbok=@b#Yw zqn8u9a)z>l(1kEaPYZ6hwubN6i<8QHgsu0oE) ziJ(p;Wxm>sf!K+cw>R-(^Y2_bahB+&KI9y^);#0qt}t-$C|Bo71lHi{_+lg#f%RFy z0um=e3$K3i6K{U_4K!EX?F&rExl^W|G8Z8;`5z-k}OGNZ0#WVb$WCpQu-_YsiqKP?BB# vzVHS-CTUF4Ozn5G+mq_~Qqto~ahA+K`|lyv3(-e}00000NkvXXu0mjfd`9t{ literal 0 HcmV?d00001 diff --git a/using_firebase_db/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png b/using_firebase_db/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..d0ef06e7edb86cdfe0d15b4b0d98334a86163658 GIT binary patch literal 1716 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 literal 0 HcmV?d00001 diff --git a/using_firebase_db/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png b/using_firebase_db/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..c8f9ed8f5cee1c98386d13b17e89f719e83555b2 GIT binary patch literal 1895 zcmV-t2blPYP)FQtfgmafE#=YDCq`qUBt#QpG%*H6QHY765~R=q zZ6iudfM}q!Pz#~9JgOi8QJ|DSu?1-*(kSi1K4#~5?#|rh?sS)(-JQqX*}ciXJ56_H zdw=^s_srbAdqxlvGyrgGet#6T7_|j;95sL%MtM;q86vOxKM$f#puR)Bjv9Zvz9-di zXOTSsZkM83)E9PYBXC<$6(|>lNLVBb&&6y{NByFCp%6+^ALR@NCTse_wqvNmSWI-m z!$%KlHFH2omF!>#%1l3LTZg(s7eof$7*xB)ZQ0h?ejh?Ta9fDv59+u#MokW+1t8Zb zgHv%K(u9G^Lv`lh#f3<6!JVTL3(dCpxHbnbA;kKqQyd1~^Xe0VIaYBSWm6nsr;dFj z4;G-RyL?cYgsN1{L4ZFFNa;8)Rv0fM0C(~Tkit94 zz#~A)59?QjD&pAPSEQ)p8gP|DS{ng)j=2ux)_EzzJ773GmQ_Cic%3JJhC0t2cx>|v zJcVusIB!%F90{+}8hG3QU4KNeKmK%T>mN57NnCZ^56=0?&3@!j>a>B43pi{!u z7JyDj7`6d)qVp^R=%j>UIY6f+3`+qzIc!Y_=+uN^3BYV|o+$vGo-j-Wm<10%A=(Yk^beI{t%ld@yhKjq0iNjqN4XMGgQtbKubPM$JWBz}YA65k%dm*awtC^+f;a-x4+ddbH^7iDWGg&N0n#MW{kA|=8iMUiFYvMoDY@sPC#t$55gn6ykUTPAr`a@!(;np824>2xJthS z*ZdmT`g5-`BuJs`0LVhz+D9NNa3<=6m;cQLaF?tCv8)zcRSh66*Z|vXhG@$I%U~2l z?`Q zykI#*+rQ=z6Jm=Bui-SfpDYLA=|vzGE(dYm=OC8XM&MDo7ux4UF1~0J1+i%aCUpRe zt3L_uNyQ*cE(38Uy03H%I*)*Bh=Lb^Xj3?I^Hnbeq72(EOK^Y93CNp*uAA{5Lc=ky zx=~RKa4{iTm{_>_vSCm?$Ej=i6@=m%@VvAITnigVg{&@!7CDgs908761meDK5azA} z4?=NOH|PdvabgJ&fW2{Mo$Q0CcD8Qc84%{JPYt5EiG{MdLIAeX%T=D7NIP4%Hw}p9 zg)==!2Lbp#j{u_}hMiao9=!VSyx0gHbeCS`;q&vzeq|fs`y&^X-lso(Ls@-706qmA z7u*T5PMo_w3{se1t2`zWeO^hOvTsohG_;>J0wVqVe+n)AbQCx)yh9;w+J6?NF5Lmo zecS@ieAKL8%bVd@+-KT{yI|S}O>pYckUFs;ry9Ow$CD@ztz5K-*D$^{i(_1llhSh^ zEkL$}tsQt5>QA^;QgjgIfBDmcOgi5YDyu?t6vSnbp=1+@6D& z5MJ}B8q;bRlVoxasyhcUF1+)o`&3r0colr}QJ3hcSdLu;9;td>kf@Tcn<@9sIx&=m z;AD;SCh95=&p;$r{Xz3iWCO^MX83AGJ(yH&eTXgv|0=34#-&WAmw{)U7OU9!Wz^!7 zZ%jZFi@JR;>Mhi7S>V7wQ176|FdW2m?&`qa(ScO^CFPR80HucLHOTy%5s*HR0^8)i h0WYBP*#0Ks^FNSabJA*5${_#%002ovPDHLkV1oKhTl@e3 literal 0 HcmV?d00001 diff --git a/using_firebase_db/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png b/using_firebase_db/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..a6d6b8609df07bf62e5100a53a01510388bd2b22 GIT binary patch literal 2665 zcmV-v3YPVWP)oFh3q0MFesq&64WThn3$;G69TfjsAv=f2G9}p zgSx99+!YV6qME!>9MD13x)k(+XE7W?_O4LoLb5ND8 zaV{9+P@>42xDfRiYBMSgD$0!vssptcb;&?u9u(LLBKmkZ>RMD=kvD3h`sk6!QYtBa ztlZI#nu$8lJ^q2Z79UTgZe>BU73(Aospiq+?SdMt8lDZ;*?@tyWVZVS_Q7S&*tJaiRlJ z+aSMOmbg3@h5}v;A*c8SbqM3icg-`Cnwl;7Ts%A1RkNIp+Txl-Ckkvg4oxrqGA5ewEgYqwtECD<_3Egu)xGllKt&J8g&+=ac@Jq4-?w6M3b*>w5 z69N3O%=I^6&UL5gZ!}trC7bUj*12xLdkNs~Bz4QdJJ*UDZox2UGR}SNg@lmOvhCc~ z*f_UeXv(=#I#*7>VZx2ObEN~UoGUTl=-@)E;YtCRZ>SVp$p9yG5hEFZ!`wI!spd)n zSk+vK0Vin7FL{7f&6OB%f;SH22dtbcF<|9fi2Fp%q4kxL!b1#l^)8dUwJ zwEf{(wJj@8iYDVnKB`eSU+;ml-t2`@%_)0jDM`+a46xhDbBj2+&Ih>1A>6aky#(-SYyE{R3f#y57wfLs z6w1p~$bp;6!9DX$M+J~S@D6vJAaElETnsX4h9a5tvPhC3L@qB~bOzkL@^z0k_hS{T4PF*TDrgdXp+dzsE? z>V|VR035Pl9n5&-RePFdS{7KAr2vPOqR9=M$vXA1Yy5>w;EsF`;OK{2pkn-kpp9Pw z)r;5JfJKKaT$4qCb{TaXHjb$QA{y0EYy*+b1XI;6Ah- zw13P)xT`>~eFoJC!>{2XL(a_#upp3gaR1#5+L(Jmzp4TBnx{~WHedpJ1ch8JFk~Sw z>F+gN+i+VD?gMXwcIhn8rz`>e>J^TI3E-MW>f}6R-pL}>WMOa0k#jN+`RyUVUC;#D zg|~oS^$6%wpF{^Qr+}X>0PKcr3Fc&>Z>uv@C);pwDs@2bZWhYP!rvGx?_|q{d`t<*XEb#=aOb=N+L@CVBGqImZf&+a zCQEa3$~@#kC);pasdG=f6tuIi0PO-y&tvX%>Mv=oY3U$nD zJ#gMegnQ46pq+3r=;zmgcG+zRc9D~c>z+jo9&D+`E6$LmyFqlmCYw;-Zooma{sR@~ z)_^|YL1&&@|GXo*pivH7k!msl+$Sew3%XJnxajt0K%3M6Bd&YFNy9}tWG^aovK2eX z1aL1%7;KRDrA@eG-Wr6w+;*H_VD~qLiVI`{_;>o)k`{8xa3EJT1O_>#iy_?va0eR? zDV=N%;Zjb%Z2s$@O>w@iqt!I}tLjGk!=p`D23I}N4Be@$(|iSA zf3Ih7b<{zqpDB4WF_5X1(peKe+rASze%u8eKLn#KKXt;UZ+Adf$_TO+vTqshLLJ5c z52HucO=lrNVae5XWOLm!V@n-ObU11!b+DN<$RuU+YsrBq*lYT;?AwJpmNKniF0Q1< zJCo>Q$=v$@&y=sj6{r!Y&y&`0$-I}S!H_~pI&2H8Z1C|BX4VgZ^-! zje3-;x0PBD!M`v*J_)rL^+$<1VJhH*2Fi~aA7s&@_rUHYJ9zD=M%4AFQ`}k8OC$9s XsPq=LnkwKG00000NkvXXu0mjfhAk5^ literal 0 HcmV?d00001 diff --git a/using_firebase_db/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png b/using_firebase_db/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..a6d6b8609df07bf62e5100a53a01510388bd2b22 GIT binary patch literal 2665 zcmV-v3YPVWP)oFh3q0MFesq&64WThn3$;G69TfjsAv=f2G9}p zgSx99+!YV6qME!>9MD13x)k(+XE7W?_O4LoLb5ND8 zaV{9+P@>42xDfRiYBMSgD$0!vssptcb;&?u9u(LLBKmkZ>RMD=kvD3h`sk6!QYtBa ztlZI#nu$8lJ^q2Z79UTgZe>BU73(Aospiq+?SdMt8lDZ;*?@tyWVZVS_Q7S&*tJaiRlJ z+aSMOmbg3@h5}v;A*c8SbqM3icg-`Cnwl;7Ts%A1RkNIp+Txl-Ckkvg4oxrqGA5ewEgYqwtECD<_3Egu)xGllKt&J8g&+=ac@Jq4-?w6M3b*>w5 z69N3O%=I^6&UL5gZ!}trC7bUj*12xLdkNs~Bz4QdJJ*UDZox2UGR}SNg@lmOvhCc~ z*f_UeXv(=#I#*7>VZx2ObEN~UoGUTl=-@)E;YtCRZ>SVp$p9yG5hEFZ!`wI!spd)n zSk+vK0Vin7FL{7f&6OB%f;SH22dtbcF<|9fi2Fp%q4kxL!b1#l^)8dUwJ zwEf{(wJj@8iYDVnKB`eSU+;ml-t2`@%_)0jDM`+a46xhDbBj2+&Ih>1A>6aky#(-SYyE{R3f#y57wfLs z6w1p~$bp;6!9DX$M+J~S@D6vJAaElETnsX4h9a5tvPhC3L@qB~bOzkL@^z0k_hS{T4PF*TDrgdXp+dzsE? z>V|VR035Pl9n5&-RePFdS{7KAr2vPOqR9=M$vXA1Yy5>w;EsF`;OK{2pkn-kpp9Pw z)r;5JfJKKaT$4qCb{TaXHjb$QA{y0EYy*+b1XI;6Ah- zw13P)xT`>~eFoJC!>{2XL(a_#upp3gaR1#5+L(Jmzp4TBnx{~WHedpJ1ch8JFk~Sw z>F+gN+i+VD?gMXwcIhn8rz`>e>J^TI3E-MW>f}6R-pL}>WMOa0k#jN+`RyUVUC;#D zg|~oS^$6%wpF{^Qr+}X>0PKcr3Fc&>Z>uv@C);pwDs@2bZWhYP!rvGx?_|q{d`t<*XEb#=aOb=N+L@CVBGqImZf&+a zCQEa3$~@#kC);pasdG=f6tuIi0PO-y&tvX%>Mv=oY3U$nD zJ#gMegnQ46pq+3r=;zmgcG+zRc9D~c>z+jo9&D+`E6$LmyFqlmCYw;-Zooma{sR@~ z)_^|YL1&&@|GXo*pivH7k!msl+$Sew3%XJnxajt0K%3M6Bd&YFNy9}tWG^aovK2eX z1aL1%7;KRDrA@eG-Wr6w+;*H_VD~qLiVI`{_;>o)k`{8xa3EJT1O_>#iy_?va0eR? zDV=N%;Zjb%Z2s$@O>w@iqt!I}tLjGk!=p`D23I}N4Be@$(|iSA zf3Ih7b<{zqpDB4WF_5X1(peKe+rASze%u8eKLn#KKXt;UZ+Adf$_TO+vTqshLLJ5c z52HucO=lrNVae5XWOLm!V@n-ObU11!b+DN<$RuU+YsrBq*lYT;?AwJpmNKniF0Q1< zJCo>Q$=v$@&y=sj6{r!Y&y&`0$-I}S!H_~pI&2H8Z1C|BX4VgZ^-! zje3-;x0PBD!M`v*J_)rL^+$<1VJhH*2Fi~aA7s&@_rUHYJ9zD=M%4AFQ`}k8OC$9s XsPq=LnkwKG00000NkvXXu0mjfhAk5^ literal 0 HcmV?d00001 diff --git a/using_firebase_db/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png b/using_firebase_db/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..75b2d164a5a98e212cca15ea7bf2ab5de5108680 GIT binary patch literal 3831 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 literal 0 HcmV?d00001 diff --git a/using_firebase_db/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png b/using_firebase_db/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..c4df70d39da7941ef3f6dcb7f06a192d8dcb308d GIT binary patch literal 1888 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 iW8Zci7-kcv6Uzs@r-FtIZ-&5|)J Q1PU{Fy85}Sb4q9e0B4a5jsO4v literal 0 HcmV?d00001 diff --git a/using_firebase_db/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png b/using_firebase_db/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..9da19eacad3b03bb08bbddbbf4ac48dd78b3d838 GIT binary patch literal 68 zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx0wlM}@Gt=>Zci7-kcv6Uzs@r-FtIZ-&5|)J Q1PU{Fy85}Sb4q9e0B4a5jsO4v literal 0 HcmV?d00001 diff --git a/using_firebase_db/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png b/using_firebase_db/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..9da19eacad3b03bb08bbddbbf4ac48dd78b3d838 GIT binary patch literal 68 zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx0wlM}@Gt=>Zci7-kcv6Uzs@r-FtIZ-&5|)J Q1PU{Fy85}Sb4q9e0B4a5jsO4v literal 0 HcmV?d00001 diff --git a/using_firebase_db/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md b/using_firebase_db/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md new file mode 100644 index 0000000..89c2725 --- /dev/null +++ b/using_firebase_db/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md @@ -0,0 +1,5 @@ +# Launch Screen Assets + +You can customize the launch screen with your own desired assets by replacing the image files in this directory. + +You can also do it by opening your Flutter project's Xcode project with `open ios/Runner.xcworkspace`, selecting `Runner/Assets.xcassets` in the Project Navigator and dropping in the desired images. \ No newline at end of file diff --git a/using_firebase_db/ios/Runner/Base.lproj/LaunchScreen.storyboard b/using_firebase_db/ios/Runner/Base.lproj/LaunchScreen.storyboard new file mode 100644 index 0000000..f2e259c --- /dev/null +++ b/using_firebase_db/ios/Runner/Base.lproj/LaunchScreen.storyboard @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/using_firebase_db/ios/Runner/Base.lproj/Main.storyboard b/using_firebase_db/ios/Runner/Base.lproj/Main.storyboard new file mode 100644 index 0000000..f3c2851 --- /dev/null +++ b/using_firebase_db/ios/Runner/Base.lproj/Main.storyboard @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/using_firebase_db/ios/Runner/Info.plist b/using_firebase_db/ios/Runner/Info.plist new file mode 100644 index 0000000..f32ea65 --- /dev/null +++ b/using_firebase_db/ios/Runner/Info.plist @@ -0,0 +1,45 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + using_firebase_db + CFBundlePackageType + APPL + CFBundleShortVersionString + $(FLUTTER_BUILD_NAME) + CFBundleSignature + ???? + CFBundleVersion + $(FLUTTER_BUILD_NUMBER) + LSRequiresIPhoneOS + + UILaunchStoryboardName + LaunchScreen + UIMainStoryboardFile + Main + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UIViewControllerBasedStatusBarAppearance + + + diff --git a/using_firebase_db/ios/Runner/main.m b/using_firebase_db/ios/Runner/main.m new file mode 100644 index 0000000..dff6597 --- /dev/null +++ b/using_firebase_db/ios/Runner/main.m @@ -0,0 +1,9 @@ +#import +#import +#import "AppDelegate.h" + +int main(int argc, char* argv[]) { + @autoreleasepool { + return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); + } +} diff --git a/using_firebase_db/lib/main.dart b/using_firebase_db/lib/main.dart new file mode 100644 index 0000000..cebc457 --- /dev/null +++ b/using_firebase_db/lib/main.dart @@ -0,0 +1,137 @@ +import 'dart:async'; +import 'package:firebase_database/firebase_database.dart'; + +import 'package:flutter/material.dart'; + +class Note { + String id; + String content; + String createdOn; + + Note(content) { + this.content = content; + this.createdOn = DateTime.now().toString(); + } +} + +void main() => runApp(MyApp()); + +class MyApp extends StatelessWidget { + @override + Widget build(BuildContext context) { + return MaterialApp( + title: 'Firebase Demo', + theme: ThemeData( + primarySwatch: Colors.blue, + ), + home: MyHomePage(title: 'Firebase demo'), + ); + } +} + +class MyHomePage extends StatefulWidget { + MyHomePage({Key key, this.title}) : super(key: key); + + final String title; + @override + _MyHomePageState createState() => _MyHomePageState(); +} + +class _MyHomePageState extends State { + final notesRef = FirebaseDatabase.instance.reference().child('notes'); + final inputController = TextEditingController(); + StreamSubscription _noteAddedStream; + var items; + + @override + void initState() { + super.initState(); + + items = new List(); + _noteAddedStream = + notesRef.orderByChild("created_on").onChildAdded.listen(_onNoteAdded); + } + + // Creates a new child under notes in the database + void _addNote() { + var note = Note(inputController.text); + inputController.text = ""; + if (note.content.isNotEmpty) { + notesRef.push().set({ + 'content': note.content, + 'created_on': note.createdOn, + }); + } + } + + // Fired whenever the database sees a new child under the notes + // database reference + void _onNoteAdded(Event event) { + setState(() { + var note = Note(event.snapshot.value["content"]); + note.id = event.snapshot.key; + note.createdOn = event.snapshot.value["created_on"]; + items.add(note); + }); + } + + // The note has to be cleared from the database and the local list + void _deleteNote(int position) { + String id = items[position].id; + notesRef.child(id).remove().then((_) { + setState(() { + items.removeAt(position); + }); + }); + } + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + title: Text("Using Firebase DB"), + ), + body: Center( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Container( + padding: EdgeInsets.all(15.0), + child: TextField( + style: new TextStyle( + fontSize: 24.0, height: 2.0, color: Colors.black), + decoration: InputDecoration( + border: InputBorder.none, hintText: 'Add a note'), + controller: inputController, + ), + ), + Expanded( + child: SizedBox( + height: 200.0, + child: ListView.builder( + itemCount: items.length, + padding: const EdgeInsets.all(10.0), + itemBuilder: (context, position) { + return Card( + child: ListTile( + leading: Icon(Icons.note), + title: Text(items[position].content), + onLongPress: () { + _deleteNote(position); + }, + ), + ); + }), + ), + ), + ], + ), + ), + floatingActionButton: FloatingActionButton( + onPressed: _addNote, + tooltip: 'Add Note', + child: Icon(Icons.add), + ), + ); + } +} diff --git a/using_firebase_db/pubspec.yaml b/using_firebase_db/pubspec.yaml new file mode 100644 index 0000000..0766e98 --- /dev/null +++ b/using_firebase_db/pubspec.yaml @@ -0,0 +1,73 @@ +name: using_firebase_db +description: A new Flutter project. + +# The following defines the version and build number for your application. +# A version number is three numbers separated by dots, like 1.2.43 +# followed by an optional build number separated by a +. +# Both the version and the builder number may be overridden in flutter +# build by specifying --build-name and --build-number, respectively. +# In Android, build-name is used as versionName while build-number used as versionCode. +# Read more about Android versioning at https://developer.android.com/studio/publish/versioning +# In iOS, build-name is used as CFBundleShortVersionString while build-number used as CFBundleVersion. +# Read more about iOS versioning at +# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html +version: 1.0.0+1 + +environment: + sdk: ">=2.1.0 <3.0.0" + +dependencies: + flutter: + sdk: flutter + + # The following adds the Cupertino Icons font to your application. + # Use with the CupertinoIcons class for iOS style icons. + cupertino_icons: ^0.1.2 + firebase_database: ^3.0.7 + +dev_dependencies: + flutter_test: + sdk: flutter + + +# For information on the generic Dart part of this file, see the +# following page: https://www.dartlang.org/tools/pub/pubspec + +# The following section is specific to Flutter. +flutter: + + # The following line ensures that the Material Icons font is + # included with your application, so that you can use the icons in + # the material Icons class. + uses-material-design: true + + # To add assets to your application, add an assets section, like this: + # assets: + # - images/a_dot_burr.jpeg + # - images/a_dot_ham.jpeg + + # An image asset can refer to one or more resolution-specific "variants", see + # https://flutter.dev/assets-and-images/#resolution-aware. + + # For details regarding adding assets from package dependencies, see + # https://flutter.dev/assets-and-images/#from-packages + + # To add custom fonts to your application, add a fonts section here, + # in this "flutter" section. Each entry in this list should have a + # "family" key with the font family name, and a "fonts" key with a + # list giving the asset and other descriptors for the font. For + # example: + # fonts: + # - family: Schyler + # fonts: + # - asset: fonts/Schyler-Regular.ttf + # - asset: fonts/Schyler-Italic.ttf + # style: italic + # - family: Trajan Pro + # fonts: + # - asset: fonts/TrajanPro.ttf + # - asset: fonts/TrajanPro_Bold.ttf + # weight: 700 + # + # For details regarding fonts from package dependencies, + # see https://flutter.dev/custom-fonts/#from-packages diff --git a/using_firebase_db/screenshot.jpg b/using_firebase_db/screenshot.jpg new file mode 100644 index 0000000000000000000000000000000000000000..514bcb6a1cd047bbabcc9cfbde7cc1520a68d81c GIT binary patch literal 107973 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

6b4iqv|vWFMlMd?t4OfGPl{ai19 z-qhwS#Ohl;6sZHcvb?rl&TqeJw6e$!4ENm!O&=nGl$APVREduAM@I(+`&twxbF>W< z>#8M-f}^L!(+;VAA(URKgM0WA)hL(;CWbnR{hN|?Us7C1&6kVj8C|!>dl(tv*TW8|8VR4P2T~(>ms2o zGM0C~c=dS1zrQnUVDIw#P<@Zc=vNQh-B(zZH=gij!t6V*4tf?CfNgX|Sl})1ncRe^ zPZ9dT-g8&T*xc!HnO5JOD{QOpD4yyVEK+pbbZm1Ef5pVYAeOF1y0{#|*Zf86tV6a^ zB9Ts`YZ3csHTlM~HD9jAFuvG&v``(F@#B6f<5c}Oj@a%(Y9<@i? zQPoc1DLCh>JTTEccSVzr^tF$j0sMRr07bsZTS?V_u6t-Tn8>*z4S>Zc*td7cq3x8+Uv~wTIr6paCc748gk2W*Q&CxJOOE=sohBLBU*7@td^uYg(jS&3r24;4D z_h5PdTg8T;KaG6WvPtjds9 zqpPlLy~)t3&mR92AS>VTo~isz@^rtJ&N0t2ox?9V^V7i<*Ei1&Fd&M=B3aM+lXf2+ zB$~Mv0GGP80TI=RVY}@moZUEx=9i!T>BvmfEBS~L`txT`n=j6zy7lYcfLTRw@_r%j zrJ&U6EZ1S;S(xg>)_d1e#`=-~M{`nX)dV7DD*XkN>XD4K#BLvk15Idgx7o9)<$wEc z==-1k^b65HKg0#aUma;I8(~6?MuxG!=eQO~|I-M$g!fOOiT{-beQfC`@qZ54v?u&I zX!4uPXET5IcCpy{r(ym7EdJtSn?CMcoBkBES$F+&#NokjGKAupYm>wS8)WB;0!S*c z?sZuEZSuwWu`z2>En%fc;Pa<=FwMc+#IMNJAVNx`udVEQmtsKWd!;Y^RTW-_+xsFt%&$pvs%45T0WYhC>7Cx2<|FNgW-e)+4r_e?3tXt-$1?w%^mPPnYdMBSNoyC z2>x|D{GZ+q39nAw+!OyDvWPs@`eDgo0_D{9!{3LUpX?0eMwHwo#$0={p+J zDRw=ens-aFZb~<#G1p`D)h&io#Jm1@-GTo=-G9RsPh9 zgT+ztNAY=8VL3Re@6nGLRWCm=8xPIX`~WGWjBnNK5?bE%vu$|f_WSy0X~#S_ErzAM zAQJJk5hHY*ipSkg^BPwq*TADUxj}F2a?S!|6Bd(?TQ27L*Q!mr`;5-wYhsknICuSg z!YE?o=6eE>y8zP_IIQ zKLUbWEkDg`QZn>~Z)qH+ek`Q_?O)I2{4ZML!Z@pnKCu`_=V_7lM4~%I^==<%5ql46 zxEJuBR@=CuySGmpEuZ0>af;dgpy%%XS>iFzH^AYDk9O$#bBiNJLbf@0k_&}(vHqB6 z@q?m2n(ptk@lgrpAJxLGoB6Mnb6?fF9VtkB$Bk3{eKT`DDx6z0`Cl#9`Jpi+u2cMG z!bsW#*FLfz4E3SFz0UROn&dW^uLQ+7hNe#^ zO5>E8oL{mPMkz}2DQ52%6Oq?r36gXHzH~{A$^@4m&nG(?{=_RX!U}g{FqI1wReTE3 z7ubjfO^9{MrE9h+;^IZne$4sBnItEzlZlirh(F|=__y8QPY_XE%xeu2Vzi)jlsCFAVSZ7#=k zI;?md3o|A_5dq?hF5jBha_2(w;K`Hm$ytlZlWYC4k!!Irp8=88m+8-jb|geaF^ox> z3y5ZPKSL(2CEBK$wlY_Tx^}Bl6CQw-mV=s{$JpyxQiO~nCN*R~dujB~&~~nr_xwK} zEqZ-xA;*1q>cO`LW|$cV@V>x64{7<8FbVpj*`%O##27u8>^RRo@?| ztHpmoT`l%w>;jwK!4fpa5p%+|l!*KwtJB%NVR8!$J36ZQ=7qHCj{b6PHkrj^o-?6Nm1TOuBmwl7)em(3V!p54!p4Iwp-?7(4-s2Kq0Y3?19{)7}n z=-TM^sWEF5A87JXzUCR>QcdVaYojz4)oD`%vHC3M7ct2v+R3}0-JKD;d9rCfv%xIE zcF1SCkvv^Go9KbDBddXkbp>3cgIA1~GZ;-`U$$Ow8g}X{@eKmxK!bq1Z$7%hxl4z= zUS@u&PM;$#t-B}%TTizTyuMn_xmGi-OZ5@o3_s=xUu9@3ygul!c9}eC4>T+yO)4Eu zXcxgaE$&LHHEK1@9UOw_VrWJfk)v(vpITp_9h^}h2IIG+x-A8lOrBm2VR?}Xynbq> zHn_nL$8~W^_bcpRj?waDidTVeP|}dk^`WIJeo}tz(=#>Xsfs$Y=#ihz?QX;!&5qVf z^b6oZ##*^~3U=hHv*j^CgXLFw7q3d7(6NwC>=Bg|`#0AR~$b zHI?)_ipel<$8qELx(FT~W9<;D`d9TF{fLQtBZ0-SZ%P8qG5{;pDtM1gYiD**jN25AylidM+bwFnF$l-;x^&-imVI{JiJ!5fd?4f^j9a@*h`v9HEm?rZx# zjA`f?pC+K9b3Y~HSB65Yb!O&rpSLhBa1^fFImawKu_%ZEb|+aA6+tRbm4ojX@(LJY zZ)ryXI>g+EV{bq{g z26Jv|gn+WOu6*>6|J(h4w}&|=#>hC*@weTCg&qyi-&J6ums{4`er(BdAh8RZ;~wyQ zjtWzhK|7;&gs2+Q361#CHVxNPG1FZ!SDemll1{Eq-1al-4B&h;7gsEw27u z-N;S?v?*=|DrjZKXVM=Z2M(>_80f+tKg)kIs+#6z91lASuBpHe;huC3=8pIXh9;XT z|DWJ&i~|z{HjDxi;4D9mBSQ6_it>&?_MUEV*sohz%(vee`M*ZajfOu2zS$7}l#8tq z_FZ0Yd(qAzZC=(pViOs;Zm_46>)%`OILg?;`^Gjp{ zCB2lWD+s+HK|yXtgpIs!#*;;6p|KS>-eq4zw&n{bSGK+qqGple!A*=);uGCgKEakn zq1{Bif`nz!*#om@rzZXGGrONgnsqdezTQ7U?C;ReFP;h$yLAJ0AmlU^$nK-#%(*#! zMbJ0&L@G;?DNJQa>2U=GNCc{hi&>=+Zg3}kkC`t$zuNQPRsTsPf)1dI2RA9MCY>I6dt-itd@&)~pXNgy0milYED@udj zBc>@yUw7HjYuXO^UOISjkyfMyO3JugAHL$APEU0Ci-DF{**a2P^+2tZb(?hum75d+ zP{CAK#uBdeB{-_u_{mX(-eJ5Ou6=$cOt_&~G&$HUakt>di2d_7A0r@J;V3q)OUo|n z%nmprOW{c(x*QnY4%>9>tNqnScf7|n?8k9U3h)isb#q`{duJ&-s<0jMsBNQ%k-&=B zO5x^cQ~6mYj?&a8{?tiXOWcnUWQP)X8etyA_F4UWd<3p<6_3yCE2s|g`r5^qwXyHn z?zwmv{}vj8+ys%?tYX?KtmHIk-o|*;@o2FJXQ*zBGZ}S$8_@Ihm~TzxyEr{?hCRyb zA(8qEejrVEp~tyJ)=Y`I4Ba-<0$~9Jw~6zMC@+qg1O-;Ra1_kWV-tGEE^rrE{{Ins zxj@1uS!l-2SN1um<9k54?T@&?rMH>-pR?B!3DZ=&09r@LGH)%lMNx?askNmYT_G*RtOW4T9vZe zScSGS6G7YaBD26bHrJ@90z>*l>zWSxB>>}MW3{|_d%jy5)5=$;&*(fB^(zQ?&`;P^ zOSz}T2kMW{y)%w`*Ya5~=STr}o63}E3NQ8*y`u-x3vMZH>CIp0 zWft7hnblO}$gFE!fd4vIg;91;<#N6cjc=IG`(vRqB0SJH_> zr5=PM91b#2*gk5J)-};-vNyt>ayY;qLi{|?jgbGZy)Tbvb6fwl&+guIlFnv1wyB0t zYG_S4n_Y@x*APRHs;TB0VkUdHhTWQqiq?2+QY9j$2vL+2)ld~f%*5163=u*Qdf$D1 zzjMyL_n&+3x##!Cy&vxNC zWI))_%}<;4t{y6ka3zl|5z*uPSjyaQgY%N78wD%Xje2tP3s@w zOH*Bcr1O{H^6w)c(YNO#C~xBYH?;kpNBX5{raVP&d1yf>zU>XgZJVQnN>fc!jXupH ztMIlK^m+70^r?b63o&N?smtqabDvEPw@QOTD5c*g_l9dn#!+;WCvO@_;b-sS0%EEc z_H4oiHgskr_o>Tf5n7HqI^BL}gJ1MaS(gT9^tm9$Xyp)i)Piu-7ni}If|lk(NKM>O ze1T}!df_MRZ=u>@(W2YFANpahu7@NkK`iHK&=(C@S)H3{_t7>I-p^;kMH^%=z4u07b=!0Mbwr;E^~X#r{_njep#CZRWrCxA{K~QW6mSpMp-pG^d@v z?7g2VPFP4cURXoPHVzFc_&XHl^FOY~W%f@lY$4U`!yU1D$SQ)$M%9|%!g>HZ#OW?B z*bmZ$oANRKShyDRK<27GVf9`r!%&?spy9?E|? zi z6$JSCrRxKRNf+sh{I(2Vn6f3v=(UIq)mC(%K$N zC^ZR{gRew*#uSS}XbK@J89r$>E9X18O1hN8$D!};aXw6V1|(6w`7P^aT+8LU%`*0b z7%$b+mRs%}7Kx+bu~$^3_4RT_#pvEBQfkcrQ)nN0E<%@Nzq}8lbz6C+&-aafKXU-@ z3dmWpEis0Fm>4D&q!siy%=TJGj#)2Eqoi}o{qzfz=#?XR3|iGg@tFvI-Mlv(pjosB zrVXM4Cx;0uzfzgf=$1F5A?F*hg`YH9bG>)B>dk8-8b$&(V^j_a)OU+PnttX_hmm(A zYpdP;`U9Tha>(<@$%EG_-+aE)F#WxbI|~Sm@@_WzZqVvk_`$kyC$s4d+I8z}P|nBT zBznbX^~R^7Hx9Rm-nt0GooN#TXb)q=DA+uhw)Xkf@>63J zgC=w6O&zWBA(MmrBDC}Pvtbf61Y{P!Ow?KWvW%^pUziwG{?*4TuBX?n!hTr! zF7#u}NS`L2$PZ!a^l7Y1pcf8CcKVTiPuiz6Dpb_6Vj70kr=HZ_ujV`u;K zjo%!0r~4E~N>BQAPjoxgjl&lo^6%A#Ew2+cRV}N(1Zpu~Ew}XBZ2#%YNV7kh1TwCc z#8l0AH}l^gWrxy_KC)fbBalPE=v{c~=&p^oy6~HHvjh0>Vp3WK#V<5}V4VhC(fKyp zpMTe}^<$hpfAXkiQR=i3;V{&-Ys~H14RMv6j z-uHhUxA?!T;a|Ss|2XO+MalEETZFg;d>n9oeBRhh-tE8L?Gy$uNW-U`!aslI`~J2) z&JWT6u&6uO;^lqS$<@lQ{^i&E-?{OBY<4x}<_}`3N}j$8-dXeHZ_?}ET11!=G!<#1 zBO9u!n5=TZa63cTjp`TCS=#mUtw|U%s#I?Hk9tmrdeZ{J^#c6Fp127QD7(pgVp%B9 zo&l1==&AQB$6f={KmBbxFhRI&R;|w|)u6}e@VANJ1~-VV=~h_a()&*sRlizG|HQ)n zt5dxvz0eL8$RO7@vRMu>Z`=er3TBMY0o3>=?9TH?HEuzT+G`hON1AFP_rQ@)Ug!(}!-x7`@u3mpL5{h9mt z&o_ho|5*&k)4dQ`w||Wz@kGxtPB{A4#G|pPuElul-beVP!9R;$>F7&34)Z)28;!hRatweXTu$R1|m1vdsl3B5RN@Q%E3d5dvFz_R)VTS34Idphpfy zY{PTkC6}yRaSB&2#GP~#t<42In!ABKw_B0kMN!LuH}l_4K(wvKV5P#TT3p8_E3kzka9NpI=Mq>3o-z z!^5gr-pMqQP&(LXOZz32N~WhmQMrq#^H>?^R>|k&gM|}XY*4uNBNkE#{vg`xu$@*e z(jr8>6g-i1Y5`k)!8mQyxXtLMfC;wxfwNzju6p-vG7;+Qs0qKfKEOtfm@ZU3{Ft4L z5$>5P8}N@>%PPz2!PlQ;xPS4j8&1`e2u@Udn2}t0j>)pvM|epR0~hKdn{4;LsA7~% zwc!%5S7s4hYA)S#dAzo+wHB$?|%nCOWJ z`q=0-?}n&uD<(BA+qZwV+}^M^G1xHgM*WPlgr4}cMW&4|%LT3mnP!BonU}Is6*yn{ z9&5F>S=e9~cW;O2)p0nn@t+S*6Zxm}mrwgFruV!nh{`D!AWzG7dhEEwN0n@Ln&s}s zC^syCpQ>SOunP(ONhlAMMk9%!3@gkB(({eQj`zsXUMC=d1hrY+{nqSGtS6?urylWm zV)yq@Q*)WAz~BH}Ow`ckTG}ABxUHc(;|JGSBK@)-i`TNVL3NfxLr>g0diJtp*DJDE z0hTEEmj%e@J4IEV=$NX@JJMm@lU9<|&FhLI>G-VOlWss%#3|av2-oZ3ZtD_vQ$3%} zNU!`lxSLmMIGYh=;@IaIC?(^=Bu3a>)BS14La?H&yxM!k{krzGQa#j|GzmYW0{NOHAzC``eXKs#t#Trkne&)gpz}o3II4fK%#`^+&k>f7S7gmFt@ZPavcN$pKj7 zH!}{7_>LHMSp_=FK)0Wr^W(prjuwXw62IGlXYM$Kk1MrA6Kb5&6`i8a65Z1j4nIQg z*Pg=})dxTj8+Ph1MR$awFQZy%?d48B3InfNZ?=>=7<^wW)g9|79zQ}E`cz>q8)5Ae zNLbfT^F_^6dU}*Yy%p*V9hdMvzn~-G+3FdXVr>5+Ae2U;HBW1_o*ZRRb zuZJI=tiM4#m2vSI`-_sCLAW!~MJ_vIAc!%0>Bw%>rEdI|>&|TQnc9vg5WSn(qYp40 zRY}`P>%VUesMxiUgO~bv+8DbuCyf;*G20G^bRA4Hm95B}EU`@N*20*Dn%YbuD{thX zw}6`7BYHu|JWV_v9}*F9^GwdtsNoU2YF8+NNV{CUzK$Kv@WuG$=WPw+T&p%&1J+er zRvNJYk6?v~X;a3Dd2tXTu>Q#d&51is@PNAMl(R~?xp1F}EN^d$_qUKypV=-Z239NzD=t(znA~_PF_@mICjp~~#nsp?Nhr>! z+Z5Z+-~)s30c)NKpLUhyXwX=%&EPBtiseM&@SeW~PA8<-{JcP{#Gkg^S9-}VvH@4e znIcgvu`Z=3=3?ZoM};BHtyK1;Oj`e_in?tP&8^!S@JtE{M#|$2lf7P9_K4}5K4|{d zexBW|CuvMkOME{&4oYX4&OmCE`&S=uea_<@x%<|)KbB#W)_xnCVCZ^CpBl!N3l@qLihp>@w>*{Mfz&iD2gD_(* zNFU^Q2t43E>3tY}BJ{PsPQDnw+e>Yg`5oB%#i2lTk6hI&r(nW$V1ti~H{ zO4u`_)YjEDN?FhQx}rekEh8rcq6YfXD`A#@gNd@Z-1=W7)qphisque_xAQeOyWKC$ ziPW1ZGut&Lg$}&s-q;KhS-fgRX@ME|=0+*nDU4=FG65yR(ivywV$*vzLqRoA__P_7 z{AP`A5W=`Ul%$?y9=z`u_M{^$X#Q+=W=P>iL?$sy7-!D!RJGl@xz>CNS@K&KXXxkv z(ojT4NIkDGKUfmKmB#Unt87@IKqXp=7HZjow3@)la3IZi-I@seO}DpfsGe6va8wjb zQ$8W9TMeB^IOz^)EyP?k5AyagOT-X#!nb{F(6cd0+d7gcVs;+8z|7)Z?N+uVS6 z^v1l9Srbg}xZqVF69@i-y^i9&|P#f1h(#l!?V zt+Uzd1oISZ3-)O?tf{%V38%sFo3h91ar|JwNpZNy=kp)*rtX%4uO|ZgrvD3M@WoOW;HI5#KbyHBS-MjqXc|60T-_c{P5j> z1u_4Vs9nCLxqhhf0BR#LxSM-jt*QT034|!RHm+36bJq+Au+(>o_ga4QDJ`}YcT$IQ zz{u{0D+F1_+C`OSmbhz~ov^zS5fORN0%U5#rYJGRo(hHAH|A8rT_#*6?a+kQ5ki+p z8P0HirXkC&)ag0f7GrJdodrm<^9cbXmM^|U~NN;n{kp84dP>L8u0pVUex)B^Fqqs@NhNlXCXqgs9MrAd zG}1Nc6Dr$DNm+oakUr9G=?RTK-wLk#D@m`)vBC_lr7>s@OnxT5H`--~LnZZJFYYTp z_4Fk=-1V9_pLpIj8MNX5%*s;#9nvm0jv z>vf%98A)hc3a)YPRndjlV^5Zj@9Op)E^B=(i++_Vi_>tktfF?_J|N_+wsunxuW4P5 zTRShu@>Z`Zu&TzR#?LRf-?AE5kfDxy8h{I3C5n13-o=dt)Gw6@>%0+fP4^$+mAvbG zbf@5@-(IYAlF|mS=s0zAa{aH{Nmxq3MrhBN-T$D#U zW!qqF#DWdei6+xBYw+PN58u0a7d#Yq7Jjsgi;2i;ee-^H%C4oYoz&FY+Je{fwI{WZ zu=+9iPe2SlaV0WoPt#0L~ANbsGLQ!1phIZ`rf>FKz?&65wWCuF8q$Q`MPGxU>o(%fs)@|-*>xcI+b)!zf zg@>c?O?0k_mTRtx8Qd(^z08qoJ%Eay4%p}F*_MUFT_49>2;K9OmtJWMrw2vHYr`)SxlgUDwEC38|JTTfoIDRt}HT`T%{>|e0pGQlr)yk8Hw8R&m zllGUgUUe0gWK`%$(dKqdkJ?BJR|fV)WR*8h&A<=^_zKliqC+so{xCG)_OOa1fd;TA1E zC4MSB731qUH4&MegCBa6^KuAxv9AJ_U=@Pwk{&<-XrZ*gh=g4MY`h!&kmJ zEbJAu8z~>(dbUAqDI(k=O|9+>`sx%m(R@qCK6@-X;@+kx>5SFX_`lCG4-R&3q(JHf z6g*(mNuPiQjKTyZ=EvYQ!4%WMn+>D@uU9TTcft-Nsz|Hi{<=Gk?D=~xDuKvPCK4fa zWu$}kwkT{Y(IxJWxstKVSNDMme36`avwYhyfx^a1!f?XWX5!m*hYu33J1;TdBlv`m zb_uP)YsPPgqT7Wbovs5h94nC$y&AL_d}(TKz_xSy<-3VqYjyJ)hOVV(m9ERr6|$mN zT29F1FC~-iRSb;KS-k?h+x8Pm=90U=PkrUPa-e`5i*{Q7y@eQ4ntdxfgNWO)-)bae z2;N@DL2oR!O&sAyFkX0Xm*G5>2G*I^8@R^hzzPg{<|`joCT7ZqBYApd&&AC2r8t_} z{ycL$4(c=kE3|go(5Dt;rcTETL`ENhA3;yJ3m9P+S)5268UbfHEJZ*3$~Q~re&qwb zf2XtbIq-RAYBcX$#v`bBEHt@)bmdMg}5JEdf$0+pY7}DfCXSX8H*`=E1R@*bg+=1Um zdFJe`vZuU)l#M+2dLA4b2CQXi5mHr~J>T9Z=}&DY)t?bM0@;P7)jKz%Cqvrb`yH{b zYt(Brj(bfryaPitR!htdu0v*A#ZC}~-ve|8c${2AmPQ!B5%s6GCH|Qkz?aRK2Y%(7 z$L`UgdqrE&FGT9M2fA6}SZuj*v{7%f2~t%wK= z(KIo7wh`hv@V+Vnp`10HDI191AN6Z9P!bw-#RnIuR<5`j_muK3J|BM{DOn$!nAY6! zHcv%2#Xw6O?L)B5zngQr=Fg3A_op{-J?ZE!?*{>ZMjiHqs`NV|)ZTV3@ZNaSe1^DD z{M*eLTFy{u`se;)ebm`>3J8g~D5eJ)kXa01=bn3$mD}t9t9gS7h1w~sRZ=uOGPLit z=wF|UN&l{TY;HYjL-zBKx7T>CV1!)nhu+?f^!Lh1O)qGk-k+!ag=Pc1NRvTzvl1gX ze;mrGA-|$v%VHp0XKGFRPYcf9D~l^_%5^N<7#kZKXCw57Y*gi@oW)NE7EuDrw5E}{ z)3?_!dT|wF-^fb;%qJG~305||Zxb9#?WvTANtOS~w-YzFc0L&a^qZ5=@`{SHAHRUo z@^;I@TO*WfQ?E6hEtc1tM$DPRMGQnQ8bdEh8@QV4(CJ6wQk$i&bpw)6)99Bn1Pr9* z5&MP0EZyq5lKIQD%h1NUeouu1rjtxjT8EqojN~nDiwh(cZaOl};^SRam>@Y{fV4#_ zX`i-hofEcOImH>o&{;bk2`JTM{2VK)RG3$+q_*J8p{OQ-g%A`lH{NQ6J9gRzd$^pc zv%kNTi?4**##?1~%w=@;kL4A2WG}Fcut(5bI!{o%CB5x|1x+9l#lLZQEn{Q2@@Ke7 zhhTe$a1R@40th(kH~(JA^tY#>F7nRt+SgMK{E)*Nh1xf)(zn&YlHgvn(&( zv!hqp+wBViY#KismS&c!v>1|i*tPuqZHhp@M9N86QRufa^+sIVlF*!*1_D;EFw}6S z)yExTDwkJ4wK8eG6RTRmlh5)ny&Zf_yQy|n4i{rB;nkhX*a;bJZ_M=D3JJm~IazOj zk_Z^3X))yE6w`hk_x`3CJ!HNr^j41C361jT{(2g$|5cr$&4Mf2|5|Mo#>Z@QR_N(- zoX^CYR1hOdzFd!LrA)Pw88X$&rigfFMY#j%rl{TLQtQou+<@l7hJVl*ka4`03^QuO z24Izn*T6vm6ID~N6AZAITaJ`>HsC*-9Wel@$oDNqQ0jA$V0VO4$P_Yb*#OeR{?0XB zeD>G!QrC@rT=lGtc5dzLVwcvcVajObVb1rp1 zW=K!4XnD(j3R2|Sy&llJb<@D^eCTs(}XPDJn+**b~C zeMcqtSgGQ`>ap$P#qMj|ZkZQ#{gCl7?!yIgAncYb*Fr;+FgW>^#LiJi~+On>VG z-r6)d)Z3w`jou!3afp#cKL2zSSJ{33Xiw|@{!QH#g>LYf2j+Gc`x)bggLa&Qs!i=#8uIaX263 zPDK68`ze^K(Wr#ihcC={p$jzsh-Q0O@!;O>!gM9A2i_81)`oZUa)#|W63CKHVSbqV5o1vt?!j2v_8Pa%%_YPKSwcw9c~)6tnW zPP{Qeto$*)L&HF@J%yeCm62j04JBRx>0o-$fs4$9STKl2W5vdUKu+Yo z$xa{n1h=_VX|5Za*KQkop24NFlI5p$nw-kdg;s|zcT+VqEq}yC5Sd%1^7m&FN0#1s zjn!)Gze=q$0i$vHU7{DvA-b`FCL)%mZlDtyy+b_~f*GSzOWje*vIIqqoj!=!%YLo> zD(WB_?VBjFm=6vO7Li&H7r{ooswJfk?kd`OHMAEwey+s`gvvgvY3)MH%(G#H)sP#L zE%~Ppl=4EYn;Kf{ar&(zxGsf~lNF;St_9nbLx9256tD`Ds|DX4s3R>Uf8Ra;eXA>% z%TAXT)XEPP&!yHc-S3icA6`3v5!wzy)$X%HJX>06{%RrXB=n?=T}#H%P@z(Oxyz4z zWA_$dA0d=iy;DAAfChZVx!I#EKfol~8a*B^Y1q54>nD8cNGjcbK#i;Hs*u(MN=D z4eo;PuQ*Olz(1ABp1QJKaktdC;8|9oqAdn(7PitWV0fWdrjDYVMd68fW;qy2{G1>y zISp!py?RnbhUV3$>0|xSGmP~@Q&ii6ntG?E+E`PkkDI3AmSI&;hz78yCdn;IBRE)S zre@22d$(rQ+)SeQ(Ybw6`|k!IQ11xsQ2fabhEbq@>+{GcL)|B{I}-U)6z5-yFrOP3 z>y^!!TAe3Nj84+?9{jnpJ8QB!-QQoJt`w(`?WD7|N}%?VkZ%=gCl~C&*`Z>aJCj$- z>Kd(ntxi{}cs0^*USYnPC+uCUEvLKIcsrzisVi&til$=!#59$ws6MEaNvqrS7Gr=x$+YlhKu+jd)9GCPmRLs26G4?#SgvLgh^zOwn zKGd5RO(0I_92vZh;(^!gD;}87C6n1)6hH5NA4DIU17ku_0+a^nofh? z-3n!bf*r=%u?*N5@+>l4O074%Xm~AL`<1@!d?D;p4{70L_|OkZKM;d3@7q53Z#Uad zy0SdUW>g|MZgh4f^gbrIZncilgOsUzaDO4!hGhR?-=;m={Qag%wH}cYUW)uKm*z-% zSH}o1zTmry$#x7FjjmGgyHjAk(U=8y*hun0{rQ5K)_?RXv6ex^FWA+WN|HvC$~rYL zq$dvN9=HNf^W|*#SkSB>uFpRuyQ+UEt0|&7mWTvZV-jzZTOSw-g-x9vd~|TXsb*sD z`;VAcg6GST>7z_@P2H(C(R5A4aYyM9{UWVv337>LpU{jQhfYm5!_jMrQ`HR8no@N5 z_UoUs(nQs5%FS{VLwd~$bwWCw!YYQc&Y=OOFadL!y3Pv}WhrGT!Pm&2@jeJ2XFX^A z3@e?e+Il6o9FHdF>?}9)`NxRwrWbmL86ocYB>z3!rcq(xS=z0~muU+Nv++o_>928d zd98W%>h+q_Mhr<3&m|tR>9yIWoiCIWm$0*wEf&z&omF)8p;QZ5OYqF-q)J%hcxI;O z3oR4LIOc0QUB20*o^8U8-{i(4zA)22FmD{aYXBq?_>9zMq}wJBC8KvHuF7q{b$}~@ z;D3y*1dq_S;t}5(_;JU`wUPsmDxF5Q zob+VHBC_|T_uMvdRd#qU$5^nvZR{st6Z!Gm)&L)lp#(w(TE4gstm{93O3Yke$00US zI8gxkx1m6iangDqzmig2LkQ0C`M*wTA3FlAU zy-wjJ+K<2^M;o9bXiiG#i?(6;RN3Sn(Bnl`TwHumPC+$}t|2|gi9bZ}ACO8fzs&C0 zp=-0^uky}ub$D~b{l(5%ZwNXSZ5*b2<#U%UGwv#e_aYctqQ4cH26 zaR$t^w{jCzA2F+NKJd9BrHU{ShdQp0X>G{w`J#S4=AKUv;?MBQ&huhkFw`}ii|;0q zMm(*H0_FT&bprsgqg-?nf~&v3*fm2)Rua7(;znw_imBU3d9iNs<*-)|?lfQRebz?y zajC{&wtHtUY*%Rg=hQ)T%$Q*T@kVpYh0g1pM`@z^O*>beoej?w-7p;rN8Qbev`ud6 zd|(U+iB&RB82ExS(lh}MH(t1Bj=^AQ>^|F9+)N+0ZtWT+T7fdLBCqo0tNV9Em#d2xH+Mf`M5!9TXO!M691vkw}hVELsQS z<7<44Wvo8G@`p|*@i0~D3^emgZr_#b7Le1*S6~;quO*D}Msz|3Mm8xs*6CV-uX!#N zo*7A!pybMrK5@U3Ag$@WYEehIg3Jo5OYq9YFJkgLqm!b`d1Id8Qc(UVSGPwJ3Zj5vCT-8Rsveq9EmQr?a36%Vmtw^0HyJ{I00 zGx{QXjTezIA5z^GjP8xJKy$zHK{|uJ@+IS0284`Tu5K-+qv<3tkowzps3g=1LK(Yt#6S z!D<|^!Yf@V)@fwWh*8`|<`sjleBJ&9H|}E$poKvgXi)qx);VeYp3are*nZ1^?4TaU zUcuMHC69Zi7QKqjb3M`P`~DsZCJTwT$49w3tpnBi562F#|K20QyiUd2pSHi>RxTo! zIMeF{-;>glo=ElVrecCp@?4t?)ei_cPFaQ*Ixo8m4+wWTmrr~yor+daz>Tj)c>ye* zkgh?$I_c!TuY6uv{#uR9O}$DQAt?6>kAfq%20T5em@_M|9~Z0AOLC|lXCkM}Pwi8Q zor{ZbVN>dR(D}aIe;^cTQ5(#>mU@c3Y7DD3WFxB3gr(%rz&8}5gt}iFU zRK;NWFFJ4Z#co!dWDaF;g?8gtT+b&c!ENgDuA5D)!U$$Fg`ygemBCVDM+IuBWkJJ= zP1bFsxvY-0xpG~vvfhP16jX}fYr}JorRE7=y48&@AUT}K=u+AoE8dE~XO4TRxH5kD z&B5!MMTRD!J~_DHDdG}o8un9`f9PCWPUDxxn7r{5Lq>4~(zsg9U*C4;>0%}CIBHRI zT#C>!kcX0m7HPyW>XCbIEz_fBwXtclr}}Nt2P)HZWThgOMTX>3Cl`AAi=m1lkg^xl z1sA8m&4(`}t9xvVK>P@2JvCnYV^%Em#1H+^>)-2#nAEake`Xi(+}tNUie#iUFfL?>Og=WvyTvz5f(>X%V3~ZxrV`o z@+S`fr;ZWUTd?tm*?NIUgR60f|^f5>LW(D2F5o(%pJH?S4e+30&COuq`r@A zZUFYvblSkl9S27aajpVfNdA;&w0h+zRtLepS4~q#rP%_JC;pn%hlF_;#!WbaiHR#}E zdU6sp3wlNxl+F0Q&_mM!*>ga%-;Q)2p^eNjxNU%<{;SWl?+oAp2_z&CHa3Vv#)J9i z_Qc|1swmos-8Os%wtfzDCaqBup!UXV- zi*-Q&J%PNyD?%lKqiJ?%36~Hb3h zZS|iUf<<|oQe?>Fg+P7;o^cgVelH&-p>`%ZxtM{f4s@BRFjx-mDgw9H~XCHxq#hbzN=X6#34f-DH3<}!^^2n_Rkq;5=JqLhy=)He;kN?N> zc-|NR-Z`KO6Ebb@hri+i0Q~@pB6Hp6xbe`8j^Ta0w6Zj7@93IS#FY#EG|2(P#v%Ap z^c#JbpvR$4(1Go9vF$>Ds%N0m&fhz-=XfgmT1FQz0QL-2?U$@=2?^0W@Zix#E`wLg z{qbqwwUB-qO@8DMx*HEDe6daw+qJ2vUjbB20F5LWko)Z{FCDaX51xAsu>S&=BzNt( zA1dD5q;{(@(co+>p!EqH9o{2f^n1oF%RtN}KR(+1d^QApsR;bGFSy%?Op}40iEf`^ z3peZVE_6Z>!)Gk4oOAI!Pzn~%;FdD*thU0l@eZhEqy9aE*T^`O>aSUz-4p??M>5dj zK&p<)JFzv)BhWU_ATs{&UR}V$I?9OPI|J2}{dlX{4nVjYZA{)@%EeY9K#O~BfJgvs zcb?8FERfoajSpJk6|35FurkC1162(uXyi~W^&9pVM?+UU{|Fbg&b!9of?+vtq(