Cloud Storage สำหรับ Firebase ช่วยให้คุณอัปโหลดและแชร์เนื้อหาที่ผู้ใช้สร้างขึ้น เช่น รูปภาพและวิดีโอ ซึ่งช่วยให้คุณสร้างเนื้อหาสื่อสมบูรณ์ลงในแอปได้ ระบบจะจัดเก็บข้อมูลของคุณไว้ในที่เก็บข้อมูล Google Cloud Storage ซึ่งเป็นโซลูชันการจัดเก็บออบเจ็กต์ระดับเอ็กซะไบต์ที่มีความพร้อมใช้งานสูงและความซ้ำซ้อนทั่วโลก Cloud Storage for Firebase ช่วยให้คุณอัปโหลดไฟล์เหล่านี้ได้อย่างปลอดภัย จากอุปกรณ์เคลื่อนที่และเว็บเบราว์เซอร์โดยตรง และจัดการเครือข่ายที่ไม่เสถียรได้อย่างง่ายดาย
ก่อนเริ่มต้น
หากยังไม่ได้ดำเนินการ โปรดตรวจสอบว่าคุณได้ทำตามคู่มือการเริ่มต้นใช้งานสำหรับแอป Flutter แล้ว ซึ่งรวมถึงเนื้อหาต่อไปนี้
การสร้างโปรเจ็กต์ Firebase
การติดตั้งและเริ่มต้นใช้งาน Firebase SDK สำหรับ Flutter
ตรวจสอบว่าโปรเจ็กต์ Firebase ของคุณใช้แพ็กเกจราคา Blaze แบบจ่ายเมื่อใช้ หากเพิ่งเริ่มใช้ Firebase และ Google Cloud โปรดตรวจสอบว่าคุณมีสิทธิ์รับเครดิต$300 หรือไม่
สร้างที่เก็บข้อมูล Cloud Storage เริ่มต้น
เลือกพื้นที่เก็บข้อมูลจากแผงการนำทางของคอนโซล Firebase
หากโปรเจ็กต์ยังไม่ได้ใช้แพ็กเกจราคา Blaze แบบจ่ายตามการใช้งาน ระบบจะแจ้งให้คุณอัปเกรดโปรเจ็กต์
คลิกเริ่มต้นใช้งาน
เลือกตำแหน่งสำหรับที่เก็บข้อมูลเริ่มต้น
ที่เก็บข้อมูลใน
,US-CENTRAL1
และUS-EAST1
สามารถใช้ประโยชน์จากระดับ"ใช้งานฟรีเสมอ" สำหรับ Google Cloud Storage ที่เก็บข้อมูลในสถานที่อื่นๆ ทั้งหมดจะใช้Google Cloud Storageการกำหนดราคาและการใช้งานUS-WEST1
หากต้องการ คุณสามารถสร้างที่เก็บข้อมูลหลายรายการในภายหลังได้ โดยแต่ละรายการจะมีตำแหน่งของตัวเอง
กำหนดค่า Firebase Security Rules สำหรับที่เก็บข้อมูลเริ่มต้น ในระหว่างการพัฒนา ให้พิจารณาตั้งค่ากฎสำหรับการเข้าถึงแบบสาธารณะ
คลิกเสร็จสิ้น
ตอนนี้คุณดูที่เก็บข้อมูลได้ในแท็บCloud Storage ไฟล์ของคอนโซล Firebase รูปแบบชื่อที่เก็บข้อมูลเริ่มต้นคือ
PROJECT_ID.firebasestorage.app
ตั้งค่าการเข้าถึงแบบสาธารณะ
Cloud Storage for Firebase มีภาษาของกฎแบบประกาศที่ช่วยให้คุณกำหนดโครงสร้างของข้อมูล วิธีจัดทำดัชนี และเวลาที่อ่านและเขียนข้อมูลได้ โดยค่าเริ่มต้น ระบบจะจำกัดสิทธิ์การอ่านและการเขียนไปยัง Cloud Storage เพื่อให้เฉพาะผู้ใช้ที่ได้รับการตรวจสอบสิทธิ์เท่านั้นที่อ่านหรือเขียนข้อมูลได้ หากต้องการเริ่มต้นใช้งานโดยไม่ต้องตั้งค่า Firebase Authentication คุณสามารถกำหนดค่ากฎสำหรับการเข้าถึงแบบสาธารณะ
การดำเนินการนี้จะทำให้ 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
) ในโค้ดเบสของแอป เพื่อให้มีชื่อของที่เก็บข้อมูล Cloud Storage เริ่มต้นเข้าถึงที่เก็บข้อมูล 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
การตั้งค่าขั้นสูง
กรณีการใช้งานบางอย่างต้องมีการตั้งค่าเพิ่มเติม ดังนี้
- การใช้ที่เก็บข้อมูล Cloud Storage ในหลายภูมิภาคทางภูมิศาสตร์
- การใช้ที่เก็บข้อมูล 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);
ขั้นตอนถัดไป
- เตรียมพร้อมเปิดตัวแอปโดยทำดังนี้
- เปิดใช้ App Check เพื่อช่วยให้มั่นใจว่ามีเพียง แอปของคุณเท่านั้นที่เข้าถึงที่เก็บข้อมูลได้
- ตั้งค่าการแจ้งเตือนงบประมาณ สำหรับโปรเจ็กต์ในคอนโซล Google Cloud
- ตรวจสอบแดชบอร์ดการใช้งานและการเรียกเก็บเงิน ในคอนโซล Firebase เพื่อดูภาพรวมการใช้งาน โปรเจ็กต์ในบริการ Firebase หลายรายการ นอกจากนี้ คุณยังดูข้อมูลการใช้งานแบบละเอียดเพิ่มเติมได้ใน แดชบอร์ดการใช้งาน Cloud Storage
- ตรวจสอบรายการตรวจสอบการเปิดตัว Firebase