เริ่มต้นใช้งาน Cloud Storage บน Flutter

Cloud Storage สำหรับ Firebase ช่วยให้คุณอัปโหลดและแชร์เนื้อหาที่ผู้ใช้สร้างขึ้น เช่น รูปภาพและวิดีโอ ซึ่งช่วยให้คุณสร้างเนื้อหาสื่อสมบูรณ์ลงในแอปได้ ระบบจะจัดเก็บข้อมูลของคุณไว้ในที่เก็บข้อมูล Google Cloud Storage ซึ่งเป็นโซลูชันการจัดเก็บออบเจ็กต์ระดับเอ็กซะไบต์ที่มีความพร้อมใช้งานสูงและความซ้ำซ้อนทั่วโลก Cloud Storage for Firebase ช่วยให้คุณอัปโหลดไฟล์เหล่านี้ได้อย่างปลอดภัย จากอุปกรณ์เคลื่อนที่และเว็บเบราว์เซอร์โดยตรง และจัดการเครือข่ายที่ไม่เสถียรได้อย่างง่ายดาย

ก่อนเริ่มต้น

  1. หากยังไม่ได้ดำเนินการ โปรดตรวจสอบว่าคุณได้ทำตามคู่มือการเริ่มต้นใช้งานสำหรับแอป Flutter แล้ว ซึ่งรวมถึงเนื้อหาต่อไปนี้

    • การสร้างโปรเจ็กต์ Firebase

    • การติดตั้งและเริ่มต้นใช้งาน Firebase SDK สำหรับ Flutter

  2. ตรวจสอบว่าโปรเจ็กต์ Firebase ของคุณใช้แพ็กเกจราคา Blaze แบบจ่ายเมื่อใช้ หากเพิ่งเริ่มใช้ Firebase และ Google Cloud โปรดตรวจสอบว่าคุณมีสิทธิ์รับเครดิต$300 หรือไม่

สร้างที่เก็บข้อมูล Cloud Storage เริ่มต้น

  1. เลือกพื้นที่เก็บข้อมูลจากแผงการนำทางของคอนโซล Firebase

    หากโปรเจ็กต์ยังไม่ได้ใช้แพ็กเกจราคา Blaze แบบจ่ายตามการใช้งาน ระบบจะแจ้งให้คุณอัปเกรดโปรเจ็กต์

  2. คลิกเริ่มต้นใช้งาน

  3. เลือกตำแหน่งสำหรับที่เก็บข้อมูลเริ่มต้น

  4. กำหนดค่า Firebase Security Rules สำหรับที่เก็บข้อมูลเริ่มต้น ในระหว่างการพัฒนา ให้พิจารณาตั้งค่ากฎสำหรับการเข้าถึงแบบสาธารณะ

  5. คลิกเสร็จสิ้น

ตอนนี้คุณดูที่เก็บข้อมูลได้ในแท็บCloud Storage ไฟล์ของคอนโซล Firebase รูปแบบชื่อที่เก็บข้อมูลเริ่มต้นคือ PROJECT_ID.firebasestorage.app

ตั้งค่าการเข้าถึงแบบสาธารณะ

Cloud Storage for Firebase มีภาษาของกฎแบบประกาศที่ช่วยให้คุณกำหนดโครงสร้างของข้อมูล วิธีจัดทำดัชนี และเวลาที่อ่านและเขียนข้อมูลได้ โดยค่าเริ่มต้น ระบบจะจำกัดสิทธิ์การอ่านและการเขียนไปยัง Cloud Storage เพื่อให้เฉพาะผู้ใช้ที่ได้รับการตรวจสอบสิทธิ์เท่านั้นที่อ่านหรือเขียนข้อมูลได้ หากต้องการเริ่มต้นใช้งานโดยไม่ต้องตั้งค่า Firebase Authentication คุณสามารถกำหนดค่ากฎสำหรับการเข้าถึงแบบสาธารณะ

การดำเนินการนี้จะทำให้ Cloud Storage เปิดให้ทุกคนเข้าถึงได้ แม้แต่ผู้ที่ไม่ได้ใช้แอปของคุณ ดังนั้นอย่าลืมจำกัด Cloud Storage อีกครั้งเมื่อตั้งค่าการตรวจสอบสิทธิ์

เพิ่ม Cloud Storage SDK ลงในแอป

  1. จากรูทของโปรเจ็กต์ Flutter ให้เรียกใช้คำสั่งต่อไปนี้เพื่อติดตั้ง ปลั๊กอิน

    flutter pub add firebase_storage
    
  2. เมื่ออัปเดตเสร็จแล้ว ให้สร้างแอปพลิเคชัน Flutter ใหม่โดยทำดังนี้

    flutter run
    
  3. นำเข้าปลั๊กอินในโค้ด Dart

    import 'package:firebase_storage/firebase_storage.dart';
    

ตั้งค่า Cloud Storage

  1. เรียกใช้ flutterfire configure จากไดเรกทอรีโปรเจ็กต์ Flutter การดำเนินการนี้จะอัปเดตไฟล์การกำหนดค่า Firebase (firebase_options.dart) ในโค้ดเบสของแอป เพื่อให้มีชื่อของที่เก็บข้อมูล Cloud Storage เริ่มต้น

  2. เข้าถึงที่เก็บข้อมูล Cloud Storage โดยสร้างอินสแตนซ์ของ FirebaseStorage ดังนี้

    final storage = FirebaseStorage.instance;
    
    // Alternatively, explicitly specify the bucket name URL.
    // final storage = FirebaseStorage.instanceFor(bucket: "gs://<var>BUCKET_NAME</var>");
    

คุณพร้อมที่จะเริ่มใช้ Cloud Storage แล้ว

ขั้นตอนถัดไป ดูวิธีสร้างข้อมูลอ้างอิง Cloud Storage

การตั้งค่าขั้นสูง

กรณีการใช้งานบางอย่างต้องมีการตั้งค่าเพิ่มเติม ดังนี้

กรณีการใช้งานแรกเหมาะอย่างยิ่งหากคุณมีผู้ใช้ทั่วโลกและต้องการ จัดเก็บข้อมูลของผู้ใช้ไว้ใกล้กับผู้ใช้ เช่น คุณสามารถสร้างที่เก็บข้อมูลในสหรัฐอเมริกา ยุโรป และเอเชียเพื่อจัดเก็บข้อมูลสำหรับผู้ใช้ในภูมิภาคเหล่านั้นเพื่อลดเวลาในการตอบสนอง

กรณีการใช้งานที่ 2 มีประโยชน์หากคุณมีข้อมูลที่มีรูปแบบการเข้าถึงที่แตกต่างกัน ตัวอย่างเช่น คุณสามารถตั้งค่าที่เก็บข้อมูลแบบหลายภูมิภาคหรือระดับภูมิภาคที่จัดเก็บรูปภาพหรือเนื้อหาอื่นๆ ที่เข้าถึงบ่อย และที่เก็บข้อมูล Nearline หรือ Coldline ที่จัดเก็บข้อมูลสำรองของผู้ใช้หรือเนื้อหาอื่นๆ ที่เข้าถึงไม่บ่อย

ในกรณีการใช้งานทั้ง 2 กรณีนี้ คุณจะต้องใช้ที่เก็บข้อมูล Cloud Storage หลายรายการ

กรณีการใช้งานที่ 3 มีประโยชน์หากคุณกำลังสร้างแอป เช่น Google ไดรฟ์ ซึ่ง อนุญาตให้ผู้ใช้มีบัญชีที่เข้าสู่ระบบหลายบัญชี (เช่น บัญชีส่วนตัว และบัญชีงาน) คุณสามารถใช้แอป Firebase ที่กำหนดเอง เพื่อตรวจสอบสิทธิ์บัญชีเพิ่มเติมแต่ละบัญชีได้

ใช้ที่เก็บข้อมูล Cloud Storage หลายรายการ

หากต้องการใช้ที่เก็บข้อมูล Cloud Storage อื่นนอกเหนือจากค่าเริ่มต้นที่ระบุไว้ข้างต้น หรือใช้ที่เก็บข้อมูล Cloud Storage หลายรายการในแอปเดียว คุณสามารถสร้างอินสแตนซ์ ของ FirebaseStorage ที่อ้างอิงที่เก็บข้อมูลที่กำหนดเองได้โดยทำดังนี้

// Get a non-default Storage bucket
final storage = FirebaseStorage.instanceFor(bucket: "gs://my-custom-bucket");

การทำงานกับที่เก็บข้อมูลที่นำเข้า

เมื่อนําเข้าที่เก็บข้อมูล Cloud Storage ที่มีอยู่ไปยัง Firebase คุณจะต้องให้สิทธิ์ Firebase เข้าถึงไฟล์เหล่านี้โดยใช้เครื่องมือ gsutil ซึ่งรวมอยู่ใน Google Cloud SDK

gsutil -m acl ch -r -u service-PROJECT_NUMBER@gcp-sa-firebasestorage.iam.gserviceaccount.com gs://YOUR-CLOUD-STORAGE-BUCKET

คุณดูหมายเลขโปรเจ็กต์ได้ตามที่อธิบายไว้ในข้อมูลเบื้องต้นเกี่ยวกับ โปรเจ็กต์ Firebase

การดำเนินการนี้จะไม่ส่งผลต่อที่เก็บข้อมูลที่สร้างขึ้นใหม่ เนื่องจากที่เก็บข้อมูลเหล่านั้นมีการตั้งค่าการควบคุมการเข้าถึงเริ่มต้นให้ Firebase อยู่แล้ว นี่เป็นมาตรการชั่วคราวและจะ ดำเนินการโดยอัตโนมัติในอนาคต

ใช้แอป Firebase ที่กำหนดเอง

หากคุณกำลังสร้างแอปที่ซับซ้อนมากขึ้นโดยใช้ FirebaseApp ที่กำหนดเอง คุณสามารถ สร้างอินสแตนซ์ของ FirebaseStorage ที่เริ่มต้นด้วยแอปนั้นได้โดยทำดังนี้

// Use a non-default App
final storage = FirebaseStorage.instanceFor(app: customApp);

ขั้นตอนถัดไป