Cloud Storage for Firebase ช่วยให้คุณอัปโหลดและแชร์เนื้อหาที่ผู้ใช้สร้างขึ้น เช่น รูปภาพและวิดีโอ ซึ่งช่วยให้คุณสร้างเนื้อหามัลติมีเดียที่สมบูรณ์ลงในแอปได้ ระบบจะจัดเก็บข้อมูลของคุณไว้ใน Bucket ของ Google Cloud Storage ซึ่งเป็นโซลูชันพื้นที่เก็บข้อมูลออบเจ็กต์ขนาด exabyte ที่มีความพร้อมใช้งานสูงและมีการสำรองข้อมูลทั่วโลก Cloud Storage for Firebase ช่วยให้คุณอัปโหลดไฟล์เหล่านี้จากอุปกรณ์เคลื่อนที่และเว็บเบราว์เซอร์ได้อย่างปลอดภัย และจัดการเครือข่ายที่ไม่เสถียรได้อย่างง่ายดาย
ก่อนเริ่มต้น
ตรวจสอบว่าคุณได้ทำตามคู่มือเริ่มต้นใช้งานสำหรับแอป Flutter แล้ว หากยังไม่ได้ดำเนินการ ซึ่งรวมถึงสิ่งต่อไปนี้
การสร้างโปรเจ็กต์ Firebase
การติดตั้งและเริ่มต้นใช้งาน Firebase SDK สำหรับ Flutter
ตรวจสอบว่าโปรเจ็กต์ Firebase ของคุณใช้แผนการกำหนดราคา Blaze แบบจ่ายตามการใช้งานจริง ซึ่ง เป็นข้อกำหนดในการใช้ Cloud Storage for Firebase หากเพิ่งเคยใช้ Firebase และ Google Cloud ให้ตรวจสอบว่าคุณมีสิทธิ์รับ เครดิตช่วงทดลองใช้ฟรี$300 หรือไม่
สร้าง Bucket ของ Cloud Storage เริ่มต้น
ในคอนโซลFirebase ให้ไปที่ฐานข้อมูลและพื้นที่เก็บข้อมูล > พื้นที่เก็บข้อมูล
หากโปรเจ็กต์ของคุณยังไม่ได้ใช้แผนการกำหนดราคา Blaze แบบจ่ายตามการใช้งานจริง ระบบจะแจ้งให้คุณอัปเกรดโปรเจ็กต์
คลิกเริ่มต้นใช้งาน
เลือก ตำแหน่ง ของ Bucket เริ่มต้น
Bucket ใน
,US-CENTRAL1 และUS-EAST1 สามารถใช้ประโยชน์จากระดับ "ใช้งานฟรีตลอดไป" สำหรับ Google Cloud Storage ได้ Bucket ในตำแหน่งอื่นๆ ทั้งหมดจะเป็นไปตาม Google Cloud Storage ราคาและการใช้งานUS-WEST1คุณสร้าง Bucket หลายรายการในภายหลังได้ โดยแต่ละรายการจะมี ตำแหน่งของตัวเอง
กำหนดค่า Firebase Security Rules สำหรับ Bucket เริ่มต้น ในระหว่างการพัฒนา ให้พิจารณา ตั้งค่ากฎสำหรับการเข้าถึงแบบสาธารณะ
คลิกเสร็จสิ้น
ตอนนี้คุณสามารถดู Bucket ในคอนโซล Firebase ได้แล้ว (ไปที่แท็บ
ฐานข้อมูลและพื้นที่เก็บข้อมูล > พื้นที่เก็บข้อมูล >
ไฟล์)
รูปแบบชื่อ Bucket เริ่มต้นคือ PROJECT_ID.firebasestorage.app
ตั้งค่าการเข้าถึงแบบสาธารณะ
Cloud Storage for Firebase มีภาษาของกฎแบบประกาศที่ช่วยให้คุณกำหนดโครงสร้างของข้อมูล วิธีจัดทำดัชนี และเวลาที่สามารถอ่านและเขียนข้อมูลได้ โดยค่าเริ่มต้น ระบบจะจำกัดสิทธิ์เข้าถึงแบบอ่านและเขียนใน Cloud Storage เพื่อให้เฉพาะผู้ใช้ที่ผ่านการตรวจสอบสิทธิ์เท่านั้นที่อ่านหรือเขียนข้อมูลได้ หากต้องการเริ่มต้นใช้งานโดยไม่ต้องตั้งค่า การตรวจสอบสิทธิ์ Firebase คุณสามารถ กำหนดค่ากฎสำหรับการเข้าถึงแบบสาธารณะได้
การดำเนินการนี้จะทำให้ Cloud Storage เปิดให้ทุกคนเข้าถึงได้ แม้แต่ผู้ที่ไม่ได้ใช้แอปของคุณ ดังนั้นอย่าลืมจำกัด Cloud Storage อีกครั้งเมื่อตั้งค่าการตรวจสอบสิทธิ์
เพิ่ม Cloud Storage SDK ลงในแอป
จากรูทของโปรเจ็กต์ Flutter ให้เรียกใช้คำสั่งต่อไปนี้เพื่อติดตั้งปลั๊กอิน
flutter pub add firebase_storageเมื่อเสร็จแล้ว ให้สร้างแอปพลิเคชัน Flutter ใหม่
flutter runนำเข้าปลั๊กอินในโค้ด Dart
import 'package:firebase_storage/firebase_storage.dart';
ตั้งค่า Cloud Storage
เรียกใช้
flutterfire configureจากไดเรกทอรีโปรเจ็กต์ Flutter ซึ่งจะอัปเดตไฟล์การกำหนดค่า Firebase (firebase_options.dart) ในฐานของโค้ดของแอปเพื่อให้มีชื่อ Bucket เริ่มต้นของคุณCloud Storageเข้าถึง Bucket ของ 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
การตั้งค่าขั้นสูง
มีกรณีการใช้งานบางกรณีที่ต้องมีการตั้งค่าเพิ่มเติม ดังนี้
- การใช้ Bucket ของ Cloud Storage ใน หลายภูมิภาคทางภูมิศาสตร์
- การใช้ Bucket ของ Cloud Storage ใน คลาสพื้นที่เก็บข้อมูลต่างๆ
- การใช้ Bucket ของ Cloud Storage กับผู้ใช้ที่ผ่านการตรวจสอบสิทธิ์หลายรายในแอปเดียวกัน
กรณีการใช้งานแรกเหมาะอย่างยิ่งหากคุณมีผู้ใช้ทั่วโลกและต้องการจัดเก็บข้อมูลของผู้ใช้ไว้ใกล้กับผู้ใช้ ตัวอย่างเช่น คุณสามารถสร้าง Bucket ในสหรัฐอเมริกา ยุโรป และเอเชียเพื่อจัดเก็บข้อมูลสำหรับผู้ใช้ในภูมิภาคเหล่านั้นเพื่อลดเวลาในการตอบสนอง
กรณีการใช้งานที่ 2 มีประโยชน์หากคุณมีข้อมูลที่มีรูปแบบการเข้าถึงที่แตกต่างกัน ตัวอย่างเช่น คุณสามารถตั้งค่า Bucket แบบหลายภูมิภาคหรือแบบภูมิภาคที่จัดเก็บรูปภาพหรือเนื้อหาอื่นๆ ที่มีการเข้าถึงบ่อย และ Bucket แบบ Nearline หรือ Coldline ที่จัดเก็บข้อมูลสำรองของผู้ใช้หรือเนื้อหาอื่นๆ ที่มีการเข้าถึงไม่บ่อย
ในกรณีการใช้งานเหล่านี้ คุณจะต้องใช้ Bucket ของ Cloud Storage หลายรายการ
กรณีการใช้งานที่ 3 มีประโยชน์หากคุณกำลังสร้างแอป เช่น Google ไดรฟ์ ซึ่งช่วยให้ผู้ใช้มีบัญชีที่เข้าสู่ระบบหลายบัญชีได้ (เช่น บัญชีส่วนตัวและบัญชีงาน) คุณสามารถ ใช้อินสแตนซ์ Firebase App ที่กำหนดเอง เพื่อตรวจสอบสิทธิ์บัญชีเพิ่มเติมแต่ละบัญชีได้
ใช้ Bucket ของ Cloud Storage หลายรายการ
หากต้องการใช้ Bucket ของ Cloud Storage อื่นนอกเหนือจาก Bucket เริ่มต้นที่ระบุไว้ข้างต้น หรือใช้ Bucket ของ Cloud Storage หลายรายการในแอปเดียว คุณสามารถสร้างอินสแตนซ์ของ FirebaseStorage ที่อ้างอิง Bucket ที่กำหนดเองได้ดังนี้
// Get a non-default Storage bucket
final storage = FirebaseStorage.instanceFor(bucket: "gs://my-custom-bucket");
การทำงานกับ Bucket ที่นำเข้า
เมื่อนำเข้า 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
การดำเนินการนี้จะไม่ส่งผลต่อ Bucket ที่สร้างขึ้นใหม่ เนื่องจาก Bucket เหล่านั้นมีการตั้งค่าการควบคุมการเข้าถึงเริ่มต้นเป็นอนุญาต Firebase นี่เป็นมาตรการชั่วคราวและระบบจะดำเนินการโดยอัตโนมัติในอนาคต
ใช้ Firebase App ที่กำหนดเอง
หากคุณกำลังสร้างแอปที่ซับซ้อนมากขึ้นโดยใช้ FirebaseApp ที่กำหนดเอง คุณสามารถสร้างอินสแตนซ์ของ FirebaseStorage ที่เริ่มต้นใช้งานด้วยแอปดังกล่าวได้ดังนี้
// Use a non-default App
final storage = FirebaseStorage.instanceFor(app: customApp);
ขั้นตอนถัดไป
- เตรียมพร้อมเปิดตัวแอป โดยทำดังนี้
- เปิดใช้ App Check เพื่อช่วยให้มั่นใจได้ว่าเฉพาะ แอปของคุณเท่านั้นที่จะเข้าถึง Bucket ของพื้นที่เก็บข้อมูลได้
- ตั้งค่าการแจ้งเตือนงบประมาณ สำหรับโปรเจ็กต์ในคอนโซล Google Cloud
- ตรวจสอบแดชบอร์ด การใช้งานและการเรียกเก็บเงิน ในคอนโซล Firebase เพื่อดูภาพรวมการใช้งานโปรเจ็กต์ ในบริการ Firebase หลายรายการ นอกจากนี้ คุณยังไปที่ แดชบอร์ด _การใช้งาน_ของ Cloud Storageเพื่อดูข้อมูลการใช้งานโดยละเอียดเพิ่มเติมได้ด้วย
- ตรวจสอบรายการตรวจสอบการเปิดตัว Firebase