یک مرجع ذخیره سازی Cloud در Android ایجاد کنید

فایل های خود را در یک ذخیره می شود ابر ذخیره سازی سطل. فایلهای موجود در این سطل در یک ساختار سلسله مراتبی ارائه می شوند ، درست مانند سیستم فایل روی هارد دیسک محلی شما ، یا داده های موجود در پایگاه داده Firebase Realtime. با ایجاد مرجع برای یک فایل ، برنامه شما به آن دسترسی پیدا می کند. از این منابع می توان برای بارگذاری یا بارگیری داده ها ، دریافت یا به روز رسانی فراداده یا حذف فایل استفاده کرد. یک مرجع می تواند به یک فایل خاص یا به یک گره سطح بالاتر در سلسله مراتب اشاره کند.

اگر شما استفاده کردم پایگاه فایربیس بیدرنگ ، این مسیرها باید برای شما بسیار آشنا به نظر می رسد. با این حال، داده های فایل خود را در ابر ذخیره سازی ذخیره می شود، نه در پایگاه بیدرنگ.

ایجاد مرجع

یک مرجع برای بارگذاری ، بارگیری یا حذف یک فایل یا دریافت یا به روز رسانی فراداده آن ایجاد کنید. یک مرجع را می توان به عنوان اشاره گر به یک فایل در ابر در نظر گرفت. منابع بسیار سبک هستند ، بنابراین می توانید تعداد مورد نیاز خود را ایجاد کنید. آنها همچنین می توانند برای چندین عملیات استفاده مجدد شوند.

ایجاد یک مرجع با استفاده از FirebaseStorage مثال تک قلو و آن خواستار getReference() روش.

جاوا

// 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() روش بر روی یک مرجع موجود است.

جاوا

// 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() هدایت تمام راه را به بالا.

جاوا

// 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 .

جاوا

// 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() روش. این روشها مسیر کامل پرونده ، نام و سطل فایل را دریافت می کنند.

جاوا

// 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

محدودیت در مراجع

مسیرها و نامهای مرجع می توانند حاوی هر دنباله ای از کاراکترهای یونیکد معتبر باشند ، اما محدودیت های خاصی اعمال می شود ، از جمله:

  1. طول کل reference.fullPath هنگام کدگذاری UTF-8 باید بین 1 تا 1024 بایت باشد.
  2. هیچ کاراکتر بازگشت یا کاراکتر خط خوراک ندارد.
  3. اجتناب از استفاده از # ، [ ، ] ، * ، یا ? ، به عنوان این به خوبی با ابزارهای دیگر مانند کار نمی پایگاه فایربیس بیدرنگ یا gsutil .

مثال کامل

جاوا

// 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

بعد، اجازه دهید یادگیری نحوه ی به آپلود فایل به ابر ذخیره سازی.