Friday, July 3, 2020

Add firebase service to Flutter project

  • ประเด็นมีอยู่ว่า จะทำ Mobile app และ มีระบบ push notify
  • และเราเองไม่เคยเขียน  android app เลย ทำไงดีล่ะ 
  • ลองเขียน Flutter ดูพอจะเข้าใจบ้างเล็กน้อยแล้วหว่า เลยหาวิธีทำ Push notify ใน Flutter
  • ซึ่งลองหาข้อมูลแล้ว เห็นเค้าๆ ใช้ Cloud Messaging ซึ่งเป็น Service ของ Firebase
  • ขึ้นแรกต้องเพิ่ม Firebase เข้าไปใน Flutter project เราก่อน ถึงจะเรียกใช้ Service ต่างๆ ได้
Environment
  • Ubuntu 18.04 Desktop 64bit
  • Flutter v1.17.3
  • Android Studio 4.0
  • Emulator Pixel XL, API 27, 1440x2560:560dpi, Android 8.1(Google APIs), CPU/ABI = x86
Step 
  • สร้าง Flutter Project ขึ้นมา => Start a new Flutter project
  • เลือก Flutter Application แล้วกัน
  • ตั้งชื่อ Project และ เลือกพาธ Flutter SDK บนเครื่องเรา
  • ตั้งชื่อ Package และ Finish
  • ตั้งชื่อ Firebase project ของเรา
  • ไม่ต้องทำไร เลือก Continue
  • เลือก Default Account for Firebase และ Create project
  • รอมันสร้างเสร็จแล้ว Continue
  • ใน Console project ที่เราสร้างเลือก Android Icon (iOS ไว้ทีหลังทำไม่เป็น)
  • ให้เราไปเปิดไฟล์ AndroidManifest.xml มองหาค่า package="packagename" เราต้องใช้ค่ามันไปใส่ในขั้นตอนต่อไป (พาธนี้ projectname/android[projectname]/app/src/main/AndroidManifest.xml)
  • Register app android package name ใส่ค่าที่ได้จากไฟล์ AndroidManifest.xml
  • Nickname ใส่ไปเลยแล้วแต่เรา ส่วนค่า Debug signing certificate SHA-1 คลิกที่รูป ? เพื่อไปเอาค่ามา
  • หลังจากที่คลิก ? ไปที่หน้า doc
  • ให้เราใช้คำสั่งในหน้า doc นั้นไปรันใน terminal
  • $ keytool -list -v -alias androiddebugkey -keystore ~/.android/debug.keystore
  • มันจะให้ใส่ Password เราก็ใส่เป็น android ตามคู่มือเค้า ให้เราเอาค่าที่ต่อจาก SHA1: 5D:0A:34:EF:8B:AC:37:42:21:80.......  เอาอันนี้แหละไปลงทะเบียนต่อขั้นตอนต่อไป
  • ใส่ค่าครบแล้วเลือก Register app
  • ขั้นตอนต่อไป Download google-services.json
  • นำไปใส่ Flutter project เราที่นี่เลย
  • ขั้นตอนต่อไปแก้ไฟล์ build.gradle 2 พาธ ตาม doc เค้า (ของ Flutter projectname/android[projectname]/build.gradle และ projectname/android[projectname]/app/build.gradle)

  • ที่ build.gradle ระดับ project เพิ่มคอนฟิกประมาณ 1 บรรทัด ถ้าไม่มีอะไรผิดปกตินะ
  • classpath 'com.google.gms:google-services:4.3.3'
  • ที่ build.gradle ระดับ app เพิ่มประมาณ 2 บรรทัด
  • apply plugin: 'com.google.gms.google-services'
  • อีกบรรทัดประมาณนี้
  • implementation 'com.google.firebase:firebase-analytics:17.2.2'
  • ตาม doc เค้าบอกให้กด Sync now บน bar ของ IDE แต่ไม่เห็นมีเลย งั้นเราก็ Next

  • ให้เราทำการ Run Flutter project ของเรา

  • จากนั้นกด Next ระบบจะตรวจสอบความถูกต้อง

  • เมื่อเรารันระบบแล้ว มันจะ Sync กับ Firebase เอง สถานะของการตรวจสอบจะเป็น 
  • Congratulations, you've successfully added Firebase to your app!
  • Flutter project พร้อมใช้งาน Firebase service แล้ว
Ref
  • https://www.youtube.com/watch?v=3rMM4adtCJk

No comments:

Post a Comment