Catch up on everything announced at Firebase Summit, and learn how Firebase can help you accelerate app development and run your app with confidence. Learn More

צור הפניה ל-Cloud Storage באנדרואיד

קל לארגן דפים בעזרת אוספים אפשר לשמור ולסווג תוכן על סמך ההעדפות שלך.

הקבצים שלך מאוחסנים בדלי של Cloud Storage . הקבצים בדלי זה מוצגים במבנה היררכי, בדיוק כמו מערכת הקבצים בדיסק הקשיח המקומי שלך, או הנתונים במסד הנתונים של Firebase Realtime. על ידי יצירת הפניה לקובץ, האפליקציה שלך מקבלת גישה אליו. לאחר מכן ניתן להשתמש בהפניות אלה כדי להעלות או להוריד נתונים, לקבל או לעדכן מטא נתונים או למחוק את הקובץ. הפניה יכולה להצביע על קובץ ספציפי או על צומת ברמה גבוהה יותר בהיררכיה.

אם השתמשת במסד הנתונים בזמן אמת של Firebase , הנתיבים האלה אמורים להיראות לך מוכרים מאוד. עם זאת, נתוני הקבצים שלך מאוחסנים ב-Cloud Storage, לא במסד הנתונים בזמן אמת.

צור הפניה

צור הפניה להעלאה, הורדה או מחיקה של קובץ, או כדי לקבל או לעדכן את המטא נתונים שלו. ניתן לחשוב על הפניה כמצביע לקובץ בענן. הפניות הן קלות משקל, כך שתוכל ליצור כמה שאתה צריך. הם גם ניתנים לשימוש חוזר עבור פעולות מרובות.

צור הפניה באמצעות מופע הסינגלטון של FirebaseStorage וקריאה לשיטת getReference() שלו.

Java

// Create a storage reference from our app
StorageReference storageRef = storage.getReference();

Kotlin+KTX

// Create a storage reference from our app
var storageRef = storage.reference

לאחר מכן, אתה יכול ליצור הפניה למיקום נמוך יותר בעץ, "images/space.jpg" על ידי שימוש בשיטת child() על הפניה קיימת.

Java

// Create a child reference
// imagesRef now points to "images"
StorageReference imagesRef = storageRef.child("images");

// Child references can also take paths
// spaceRef now points to "images/space.jpg
// imagesRef still points to "images"
StorageReference spaceRef = storageRef.child("images/space.jpg");

Kotlin+KTX

// Create a child reference
// imagesRef now points to "images"
var imagesRef: StorageReference? = storageRef.child("images")

// Child references can also take paths
// spaceRef now points to "images/space.jpg
// imagesRef still points to "images"
var spaceRef = storageRef.child("images/space.jpg")

אתה יכול גם להשתמש getParent() ו- getRoot() כדי לנווט למעלה בהיררכיית הקבצים שלנו. getParent() מנווט למעלה רמה אחת, בעוד getRoot() מנווט כל הדרך למעלה.

Java

// getParent allows us to move our reference to a parent node
// imagesRef now points to 'images'
imagesRef = spaceRef.getParent();

// getRoot allows us to move all the way back to the top of our bucket
// rootRef now points to the root
StorageReference rootRef = spaceRef.getRoot();

Kotlin+KTX

// parent allows us to move our reference to a parent node
// imagesRef now points to 'images'
imagesRef = spaceRef.parent

// root allows us to move all the way back to the top of our bucket
// rootRef now points to the root
val rootRef = spaceRef.root

child() , getParent() ו- getRoot() ניתנים לשרשרת יחד מספר פעמים, כאשר כל אחד מחזיר הפניה. אבל קריאת getRoot().getParent() מחזירה null .

Java

// References can be chained together multiple times
// earthRef points to 'images/earth.jpg'
StorageReference earthRef = spaceRef.getParent().child("earth.jpg");

// nullRef is null, since the parent of root is null
StorageReference nullRef = spaceRef.getRoot().getParent();

Kotlin+KTX

// References can be chained together multiple times
// earthRef points to 'images/earth.jpg'
val earthRef = spaceRef.parent?.child("earth.jpg")

// nullRef is null, since the parent of root is null
val nullRef = spaceRef.root.parent

מאפייני התייחסות

אתה יכול לבדוק הפניות כדי להבין טוב יותר את הקבצים שהם מצביעים עליהם באמצעות getPath() , getName() ו- getBucket() . שיטות אלה מקבלות את הנתיב המלא של הקובץ, את השם והדלי.

Java

// Reference's path is: "images/space.jpg"
// This is analogous to a file path on disk
spaceRef.getPath();

// Reference's name is the last segment of the full path: "space.jpg"
// This is analogous to the file name
spaceRef.getName();

// Reference's bucket is the name of the storage bucket that the files are stored in
spaceRef.getBucket();

Kotlin+KTX

// Reference's path is: "images/space.jpg"
// This is analogous to a file path on disk
spaceRef.path

// Reference's name is the last segment of the full path: "space.jpg"
// This is analogous to the file name
spaceRef.name

// Reference's bucket is the name of the storage bucket that the files are stored in
spaceRef.bucket

מגבלות על הפניות

נתיבים ושמות הפניה יכולים להכיל כל רצף של תווי Unicode חוקי, אך מוטלות הגבלות מסוימות כולל:

  1. האורך הכולל של reference.fullPath חייב להיות בין 1 ל-1024 בתים בעת קידוד UTF-8.
  2. אין תווים להחזרת כרכרה או הזנת שורה.
  3. הימנע משימוש ב- # , [ , ] , * או ? , שכן אלה אינם פועלים היטב עם כלים אחרים כגון Firebase Realtime Database או gsutil .

דוגמה מלאה

Java

// Points to the root reference
storageRef = storage.getReference();

// Points to "images"
imagesRef = storageRef.child("images");

// Points to "images/space.jpg"
// Note that you can use variables to create child values
String fileName = "space.jpg";
spaceRef = imagesRef.child(fileName);

// File path is "images/space.jpg"
String path = spaceRef.getPath();

// File name is "space.jpg"
String name = spaceRef.getName();

// Points to "images"
imagesRef = spaceRef.getParent();

Kotlin+KTX

// Points to the root reference
storageRef = storage.reference

// Points to "images"
imagesRef = storageRef.child("images")

// Points to "images/space.jpg"
// Note that you can use variables to create child values
val fileName = "space.jpg"
spaceRef = imagesRef.child(fileName)

// File path is "images/space.jpg"
val path = spaceRef.path

// File name is "space.jpg"
val name = spaceRef.name

// Points to "images"
imagesRef = spaceRef.parent

לאחר מכן, נלמד כיצד להעלות קבצים ל-Cloud Storage.