Как загрузить PDF-файлы в хранилище Firebase на Android?
Firebase — платформа для разработки мобильных и веб-приложений. Он предоставляет услуги, которые могут потребоваться веб-приложению или мобильному приложению. Firebase обеспечивает безопасную загрузку и скачивание файлов для приложения Firebase. В этой статье объясняется, как создать приложение для Android с возможностью выбора pdf-файла с мобильного телефона и загрузки этого pdf-файла в хранилище Firebase .
Пошаговая реализация
Шаг 1: Создайте новый проект
Чтобы создать новый проект в Android Studio, обратитесь к разделу «Как создать/запустить новый проект в Android Studio». Обратите внимание, что в качестве языка программирования выберите Java . И добавьте firebase в свой проект, или вы можете обратиться к разделу «Добавление Firebase в приложение Android».
Шаг 2. Добавьте зависимость в файл build.gradle (Module: app).
Перейдите к Gradle Scripts > build.gradle (Module: app) и добавьте приведенную ниже зависимость в раздел зависимостей.
implementation ‘com.google.firebase:firebase-storage:16.0.4’
implementation fileTree(dir: ‘libs’, include: [‘*.jar’])
После добавления этой зависимости синхронизируйте свой проект, и теперь мы перейдем к ее реализации.
Шаг 3: Работа с файлом activity_main.xml
Перейдите к приложению > res > layout > activity_main.xml и добавьте приведенный ниже код в этот файл. Ниже приведен код файла activity_main.xml .
XML
<?xml version="1.0" encoding="utf-8"?><LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" android:orientation="vertical" tools:context=".MainActivity"> <ImageView android:id="@+id/uploadpdf" android:layout_width="200dp" android:layout_height="200dp" android:src="@drawable/ic_picture_as_pdf_black_24dp" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Upload A Pdf" android:textSize="22sp" android:textStyle="bold" /> </LinearLayout> |
Шаг 4: Работа с файлом MainActivity.java
Перейдите к файлу MainActivity.java и обратитесь к следующему коду. Ниже приведен код файла MainActivity.java . Комментарии добавляются внутри кода, чтобы понять код более подробно.
Java
import android.app.ProgressDialog;import android.content.Intent;import android.net.Uri;import android.os.Bundle;import android.view.View;import android.widget.ImageView;import android.widget.Toast; import androidx.annotation.NonNull;import androidx.annotation.Nullable;import androidx.appcompat.app.AppCompatActivity; import com.google.android.gms.tasks.Continuation;import com.google.android.gms.tasks.OnCompleteListener;import com.google.android.gms.tasks.Task;import com.google.firebase.storage.FirebaseStorage;import com.google.firebase.storage.StorageReference; public class MainActivity extends AppCompatActivity { ImageView upload; Uri imageuri = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); upload = findViewById(R.id.uploadpdf); // After Clicking on this we will be // redirected to choose pdf upload.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent galleryIntent = new Intent(); galleryIntent.setAction(Intent.ACTION_GET_CONTENT); // We will be redirected to choose pdf galleryIntent.setType("application/pdf"); startActivityForResult(galleryIntent, 1); } }); } ProgressDialog dialog; @Override protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { super.onActivityResult(requestCode, resultCode, data); if (resultCode == RESULT_OK) { // Here we are initialising the progress dialog box dialog = new ProgressDialog(this); dialog.setMessage("Uploading"); // this will show message uploading // while pdf is uploading dialog.show(); imageuri = data.getData(); final String timestamp = "" + System.currentTimeMillis(); StorageReference storageReference = FirebaseStorage.getInstance().getReference(); final String messagePushID = timestamp; Toast.makeText(MainActivity.this, imageuri.toString(), Toast.LENGTH_SHORT).show(); // Here we are uploading the pdf in firebase storage with the name of current time final StorageReference filepath = storageReference.child(messagePushID + "." + "pdf"); Toast.makeText(MainActivity.this, filepath.getName(), Toast.LENGTH_SHORT).show(); filepath.putFile(imageuri).continueWithTask(new Continuation() { @Override public Object then(@NonNull Task task) throws Exception { if (!task.isSuccessful()) { throw task.getException(); } return filepath.getDownloadUrl(); } }).addOnCompleteListener(new OnCompleteListener<Uri>() { @Override public void onComplete(@NonNull Task<Uri> task) { if (task.isSuccessful()) { // After uploading is done it progress // dialog box will be dismissed dialog.dismiss(); Uri uri = task.getResult(); String myurl; myurl = uri.toString(); Toast.makeText(MainActivity.this, "Uploaded Successfully", Toast.LENGTH_SHORT).show(); } else { dialog.dismiss(); Toast.makeText(MainActivity.this, "UploadedFailed", Toast.LENGTH_SHORT).show(); } } }); } }} |
Выход:
Хранилище Firebase:

Ссылка на гитхаб.