Catch up on highlights from Firebase at Google I/O 2023. Learn more

เริ่มต้นใช้งาน Cloud Storage สำหรับ C++

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

ก่อนที่คุณจะเริ่มต้น

ก่อนที่คุณจะสามารถใช้ Cloud Storage ได้ คุณต้อง:

  • ลงทะเบียนโปรเจ็กต์ C++ ของคุณและกำหนดค่าให้ใช้ Firebase

    หากโปรเจ็กต์ C++ ของคุณใช้ Firebase อยู่แล้ว แสดงว่ามีการลงทะเบียนและกำหนดค่าสำหรับ Firebase แล้ว

  • เพิ่ม Firebase C++ SDK ในโครงการ C++ ของคุณ

โปรดทราบว่าการเพิ่ม Firebase ในโปรเจ็กต์ C++ ของคุณเกี่ยวข้องกับงานทั้งใน คอนโซล Firebase และในโปรเจ็กต์ C++ แบบเปิดของคุณ (เช่น คุณดาวน์โหลดไฟล์กำหนดค่า Firebase จากคอนโซล จากนั้นย้ายไฟล์เหล่านี้ไปยังโปรเจ็กต์ C++)

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

  1. จากบานหน้าต่างการนำทางของ คอนโซล Firebase เลือก ที่เก็บข้อมูล จากนั้นคลิก เริ่มต้น

  2. ตรวจสอบข้อความเกี่ยวกับการรักษาความปลอดภัยข้อมูล Cloud Storage ของคุณโดยใช้กฎความปลอดภัย ในระหว่างการพัฒนา ให้พิจารณา ตั้งกฎสำหรับการเข้าถึงแบบสาธารณะ

  3. เลือก ตำแหน่ง สำหรับที่ฝากข้อมูล Cloud Storage เริ่มต้นของคุณ

    • การตั้งค่าตำแหน่งนี้เป็น ตำแหน่งทรัพยากรเริ่มต้นของ Google Cloud Platform (GCP) ในโครงการของคุณ โปรดทราบว่าตำแหน่งนี้จะใช้สำหรับบริการ GCP ในโครงการของคุณที่ต้องการการตั้งค่าตำแหน่ง โดยเฉพาะฐานข้อมูล Cloud Firestore และแอป App Engine ของคุณ (ซึ่งจำเป็นหากคุณใช้ Cloud Scheduler)

    • หากคุณไม่สามารถเลือกตำแหน่งได้ แสดงว่าโครงการของคุณมีตำแหน่งทรัพยากร GCP เริ่มต้นอยู่แล้ว มีการตั้งค่าระหว่างการสร้างโครงการหรือเมื่อตั้งค่าบริการอื่นที่ต้องมีการตั้งค่าตำแหน่ง

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

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

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

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

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

สร้างและเริ่มต้น firebase::App

ก่อนที่คุณจะสามารถเข้าถึง Cloud Storage ได้ คุณจะต้องสร้างและเริ่มต้น firebase::App

รวมไฟล์ส่วนหัวสำหรับ firebase::App :

#include "firebase/app.h"

แอนดรอยด์

สร้าง firebase::App ผ่านสภาพแวดล้อม JNI และการอ้างอิง jobject ไปยัง Java Activity เป็นอาร์กิวเมนต์:

app = App::Create(AppOptions(), jni_env, activity);

iOS+

สร้าง firebase::App :

app = App::Create(AppOptions());

เข้าถึง firebase::storage::Storage class

คลาส firebase::storage::Storage เป็นจุดเริ่มต้นสำหรับ Cloud Storage C++ SDK

Storage* storage = Storage::GetInstance(app);

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

ก่อนอื่น มาเรียนรู้วิธี สร้างข้อมูลอ้างอิง Cloud Storage

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

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

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

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

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

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

ใช้ที่เก็บข้อมูลบนคลาวด์หลายที่

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

// Get a non-default Cloud Storage bucket
Storage* storage = Storage::GetInstance("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 ที่กำหนดเอง

หากคุณกำลังสร้างแอปที่ซับซ้อนขึ้นโดยใช้ firebase::App ที่กำหนดเอง คุณสามารถสร้างอินสแตนซ์ของ firebase::storage::Storage ที่เริ่มต้นจากแอปนั้น:

// Get the default bucket from a custom firebase::App
Storage* storage = Storage::GetInstance(customApp);

// Get a non-default bucket from a custom firebase::App
Storage* storage = Storage::GetInstance(customApp, "gs://my-custom-bucket");

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